|
|
|
|
Strumenti |
15-10-2017, 12:15 | #1 |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Delucidazioni sui Linguaggi informatici?
A cosa servono concretamente i seguenti linguaggi e cosa si può fare con questi? A me piacerebbe imparare a programmare per sviluppare software e/o applicativi con funzioni particolari. Ma anche temi grafici e tutto ciò di correlato ne concerne + modificare prodotti pre-esistenti su GNU/Linux. Prettamente nel tempo libero, per utilità, far qualcosa di buono e soddisfazione personale. Sia su GNOME che KDE5. Inoltre mi piacerebbe imparare a creare e gestire pacchetti sui repository e cose di questo tipo.
Vorrei puntare ad arricchire bene il BELLISSIMO progetto che è GNU/Linux. Però ho notato che c'è molta mancanza di corsi gratuiti dedicati a questo scopo in giro per la rete. E mi riesce difficile instradarmi verso la corretta direzione. Ed attualmente non ho i soldi sufficienti per fare dei corsi professionali , ne ci punto perché non ho un diploma informatico. Ma con i PC ci macino piuttosto bene. Non parto da zero insomma. Per mia esperienza ho utilizzato ed imparato da autodidatta l' HTML5, CSS3 & Javascript in maniera abbastanza "avanzata". Anche creando robe mie. Ma semplicemente per temi e funzioni per il Web con il semplice Blogspot. Ciò nonostante ho visto che con i tre soprascritti linguaggi si può giocare anche dinamicamente per creare vere e proprie funzioni interattive. Su Codepen si trovano molti esempi e devo dire che questa cosa mi è molto piaciuta. Perciò mi piacerebbe approfondire meglio su cosa si può e non si può fare. Ovviamente devo ripartire da zero ma penso che questo sia un obbiettivo davvero interessanteda intraprendere. I linguaggi che ho adocchiato sono: C C# C++ CSS3 - video corso trovato (ripasserò) GTK3 HTML5 - video corso trovato (ripasserò) Javascript - video corso trovato (ripasserò) Java - video corso trovato JQuery - video corso trovato PHP - video corso trovato Python SQL Vala Ed in ordine, cosa mi consigliate di studiare? PS: Grazie a chi pazientemente mi presterà la sua esperienza per aiutarmi!
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! Ultima modifica di warmuser : 15-10-2017 alle 13:06. |
15-10-2017, 15:46 | #2 |
Member
Iscritto dal: Jul 2009
Messaggi: 273
|
Ciao, provo ad aiutarti. Prima però delle premesse. Non conosco tutti i linguaggi che hai elencato ma per non fare confusione li raggrupperei perchè non sono sullo stesso piano.
CSS e HTML sono linguaggi di markup, SQL è la lingua per interagire con i database, jQuery e Javascript sono a metà strada tra markup e programmazione. Tutti gli altri son linguaggi di programmazione che grosso modo condividono le medesime logiche. Se ne conosci uno puoi comprendere gli altri. Cosa imparare? Dipende da quello che devi fare. Se non hai preferenze personalmente ti consiglierei i linguaggi web per tre motivi:
I linguaggi di basso livello li ignorerei bellamente |
16-10-2017, 15:11 | #3 |
Member
Iscritto dal: Jun 2016
Messaggi: 68
|
ciao,
in base a quello che hai scritto non ho capito se vuoi lavorare per creare software per linux (intendo file eseguibili su linux) oppure per creare siti web... sql è obbligatorio in quanto moltissimi programmi (sia per il web sia eseguibili) avranno a che fare con i database ed è giusto che lo conosca... css3, html5, javascript (jquery) e php sono tutti linguaggi per creare siti web... se vuoi lavorare prettamente su linux e non sul web non ti servono... però non posso non quotare nuke987 che oramai anche i gestionali tendono ad essere fatti come siti web e quindi non li scarterei a priori (maggiore compatibilità con molteplici dispositivi, aggiornamenti centralizzati e senza installazione del client etc.)... java, c/c++, python e gtk3 sono invece linguaggi per software eseguibili su linux... il c# se vuoi lavorare su linux non te lo consiglio... è stato sviluppato prevalentemente per windows (framework .net) ed anche se c'è il porting su linux chiamato mono secondo me non ti conviene... vala non lo conosco, ho fatto una breve ricerca su google, ma non posso darti suggerimenti in merito... p.s. considera che diversi di questi linguaggi (c/c++, java, javascript, php) sono abbastanza simili come sintassi, quindi una volta che ne impari uno è più facile imparare gli altri... |
16-10-2017, 16:25 | #4 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Bene, vedo ci sono parecchie domande in quel post. Andiamo con ordine.
1. A cosa servono i linguaggi citati? I linguaggi Turing-completi possono fare tutto e intendo proprio tutto. Quindi dal punto di vista delle capacita' sono equivalenti. Le differenze stanno nel modello di programmazione che mostrano al programmatore ( che puo' agevolare la soluzione di particolari classi di problemi ), nel numero di librerie di terze parti disponibili per il linguaggio ( non vorrai mica reinventare la ruota? costerebbe anni di lavoro oltretutto ), nella capacita' o meno di interagire a basso livello col sistema. 2. I temi grafici per i vari DE ( desktop environment, tipo Gnome o KDE ) sono sviluppati nei linguaggi previsti dai progettisti del DE. Ultimamente molti progetti sfruttano proprio HTML/CSS e Javascript per rendere i temi dinamici. Ma non e' obbligatorio fare cosi'. Per cui la situazione cambia di caso in caso. Sicuramente non troverai nessun DE che utilizzi il C per la realizzazione di temi. 3. Contribuire allo sviluppo di softare open/Linux si puo' fare ovviamente. Il linguaggio piu' in voga nel mondo Linux e' il C, relativamente alle librerie e software di basso livello ( quelli che interagiscono con l'hardware o implementano funzionalita' importanti e critiche ). Ma moltissimi altri progetti sono implementati nei piu' disparati linguaggi, da Python a Rust. 4. Sviluppare su Gnome e KDE significa sviluppare prevalentemente con GTK e QT rispettivamente. A cio' vanno aggiunte librerie specifiche dei due DE. Il punto e' che piu' che una questione di linguaggio, e' una questione di librerie e framework. 5. I pacchetti deb, rpm e compagnia hanno loro regole e tool. Non c'entrano i linguaggi di programmazione. Del resto esistono tool che li creano automaticamente e francamente non vale nemmeno la pena sbattersi a capire come funzionano sotto il cofano ( che poi non e' niente di che ). Detto cio', considerando che conosci HTML5/CSS/JS, il primo consiglio che ti posso dare e' di sviluppare applicazioni con Electron. Si tratta di un runtime basato su Node.js che consente di realizzare applicazioni con le conoscenze che gia' hai. Hai i suoi inghippi, soprattutto nel setup dei nuovi progetti e nella gestione delle dipendenze. Andando oltre, posso dirti che il linguaggio e' uno strumento e come tale va considerato. In C o Java puoi realizzare piu' o meno gli stessi software. Sono pero' le astrazioni fornite che sono molto differenti ( Java offre un modello di programmazione piu' ricco ). E si puo' continuare a centellinare sui modelli di programmazione dei vari linguaggi ad nauseam. Onestamente l'unico modo per farsi un'idea e' provarli. Se puoi interessa seguire i trend del settore, ti basta guardare qui http://redmonk.com/sogrady/2017/06/0...rankings-6-17/ Noterai che ci sono pochi linguaggi enormemente populari, mentre il restante e' piu' o meno utilizzato ( in realta' sono di nicchia ). Un linguaggio come Haskell ( che non frega a nessuno in ambito mainstream ) e' molto diffuso in ambito finanziario. Ovviamente per validi motivi... Sui linguaggi che hai indicato si puo' dire che: 1. C --> basso livello, aiuta a capire molti meccanismi usati per implementare astrazioni di piu' alto livello 2. C# --> concorrente diretto di Java, usato in ambiti PMI e in parte web, C-like, linguaggio preferito per lo sviluppo di applicazioni Windows/.NET, ma non altrettanto diffuso su piattaforme non Windows 3. C++ --> una sorte di fratello maggiore del C, usato ovunque in progetti di varia complessita' 4. CSS --> non lo metteri tra i linguaggi di programmazione, in quanto e' un linguaggio dichiarativo ( come HTML ). Il suo ruolo e' di supporto ad altre tecnologie, per definire le caratteristiche ( soprattutto grafiche ) di elementi d'interfaccia 5. GTK --> e' un libreria, non un linguaggio 6. HTML --> stesso discorso di CSS 7. Javascript --> e' il piu' diffuso a livello globale e ormai e' usato ovunque, anche se come modello di programmazione fa parecchio acqua ( tant'e' che vari soggetti si sono inventati dei miglioramenti, Google con Dart, MS con Typescript ) 8. Java --> questo qui lo trovi dappertutto, soprattutto in ambito aziendale e nei web services 9. JQuery --> e' una libreria Javascript, non un linguaggio 10. PHP --> abbastanza diffuso per i backend dei siti web, oltre non mi pare abbia sfondato 11. Python --> altro linguaggio che trovi ovunque e per validissime ragioni 12. SQL --> sicuramente ti servira' conoscerlo quando deciderai di integrare le tue applicazioni con i database SQL. Ma non e' il caso di scapicollarsi, puoi metterci bene quando ti servira' 13. Vala --> linguaggi C-like inventato dal progetto Gnome perche' C fa schifo per lo sviluppo di progetti tanto grandi. Al di fuori degli sviluppatori Gnome non lo usa nessuno In quella lista mancano parecchi linguaggi importanti e alcune new entry che faranno molta strada. Rust, R ( usato in ambito scientifico ), Kotlin ( una sorta di sostituto di Java nelle intenzioni dei suoi creatori ), Clojure ( un LISP, questo dovresti studiartelo ), Go ( linguaggio di Google, il suo punto forte e' il modello di concorrenza ), Swift ( sostituto di Objective-C per lo sviluppo di software in ambito Apple ), Red ( clone opensource di Rebol ). Ultima modifica di pabloski : 16-10-2017 alle 16:28. |
17-10-2017, 11:27 | #5 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! Ultima modifica di warmuser : 17-10-2017 alle 11:30. |
|
17-10-2017, 11:30 | #6 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
Cmq ho studiato quei linguaggi perché mi sono serviti per cercare manipolare i miei Blog.
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
17-10-2017, 11:49 | #7 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
Java Qt GTK3 e Vala Anche perché mi sposterò su GNU/Linux prossimamente (sono agli sgoccioli dopo un anno e mezzo di pratica ). MS Windows per me è un progetto morto tanto anche la Microsoft, secondo alcuni rumors, sta creando un suo sistema basato su kernel linux. E penso sia vero visti i soldi che hanno investito sulla Linux Foundation Ho altre due domande: Su Windows sono stato capace di programmare in batch, per ex ho creato un piccolo batch come funzione "estensiva" di .7z Che mi permette di generare delle compressioni da molteplici files o cartelle. Come su WinRAR. Insomma, vorrei poter fare lo stesso all' occorrenza. I sopracitati linguaggi o librerie sono in grado di garantirmi anche questo tipo di funzioni?
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
17-10-2017, 11:53 | #8 |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Ho un' altra domanda. In quale modo si generano delle estensioni di file? Ex. ".rar", ".jpg", ".exe", etc.. Ed inoltre, queste esprimono una determinata funzione o servono semplicemente come "etichetta" di un determinato file.
Considero importante chiederlo perché ho in mente un progetto che mi porterà a manipolare attivamente i files andando anche a prelevare i contenuti all' interno di questi e ricrearli in una determinata nuova estensione. Certo sbattersi da fastidio ma è necessario perché ho in mente di creare un tipo di file che non esiste e non può essere replicato attraverso differenti estensioni di file pre-esistenti. Ultima cosa che mi ero scordato. Riguarda flash ma non ho capito se verrà abbandonato oppure no visto che continua parecchio ad essere supportato e davvero tanta roba ci gira. L' ActionScript può essere sostituito da HTML5 in tutto?
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! Ultima modifica di warmuser : 17-10-2017 alle 11:55. |
17-10-2017, 14:16 | #9 | |||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Occhio che GTK e QT non sono linguaggi ma librerie e framework per lo sviluppo di applicazioni con UI grafica.
Qt e' scritta in C++ e GTK in C. Qt in genere la si usa tramite C++ o Python, mentre GTK tramite C, C++ o Python. Ma esistono bindings che consentono di usarle con altri linguaggi. Quote:
L'equivalente del batch di Windows e' lo shell scripting sotto Linux/Unix. Cioe' questo http://www.html.it/guide/shell-scripting-la-guida/ Faccio notare che parliamo di strumenti con parecchie limitazioni rispetto ai linguaggi general purpose. Tanto che sotto Linux si usa Python per la realizzazione di script particolarmente complessi. Quote:
Infatti ti basta fare in C Codice:
open("pippo.rar", "w) Questo per chiarire il fatto che le estensioni non fanno il tipo di file, cosi' come l'abito non fa il monaco. Quote:
Esiste pero' un progetto che usa il formato SWF ( quello di Flash ) e un linguaggio e API derivate da Actionscript. Questo progetto e' HaXe, un linguaggio ( con annessi framework ) multipiattaforma. |
|||
17-10-2017, 21:31 | #10 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
Prima di tutto ho in mente di creare temi grafici, piccoli tool in grado di portare funzioni utili su KDE5 e poi dei programmi abbastanza impegnativi. Nulla di impresario ma solo progetti raggiungibili.
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
18-10-2017, 09:01 | #11 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Python e' una buona soluzione in molti casi. E comunque e' un linguaggio da conoscere perchef' ormai e' usato dappertutto.
Quote:
Sfruttano i temi per dare alle interfacce un particolare look. Ma non e' che servono per creare temi, servono per creare interfacce grafiche. Quote:
per ora ti basta questo, visto che KDE/QT sono in grado di usare i temi GTK/Gnome i piccoli tool sarebbero programmi stand-alone o widget plasma? e tieni in conto che KDE/QT implementano due widget set, uno quello classico e l'altro basato su QML |
||
18-10-2017, 15:36 | #12 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
Benissimo, grazie Comunque entrambe le soluzioni mi andrebbero, ancora meglio se fossero widget perché comunque penso che KDE5 sia davvero un gran bel DE e mi piacerebbe un sacco aggiungerci funzioni. Ciò nonostante anche per trasportabilità in favore di eventuali utenti che non utilizzano lo stesso DE mi converrebbe creare qualcosa che possa essere comunque anche in versione stand-alone. PS: Alcuni sarebbero funzioni dedicate a KDE5 mentre altri sarebbero più generici e quindi potrebbero andare bene indipendentemente dal DE installato. Mettiamola così
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
18-10-2017, 16:10 | #13 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Alla fin fine per creare un'applicazione kde devi usare qt e le kdelibs. E ovviamente quell'applicazione puo' essere installata ed usata anche su computer con gnome o qualsiasi altro DE. Certo poi l'integrazione col DE non saranno delle migliori. Quote:
In passato la situazione era tragica, ma negli anni si e' lavorato sull'interoperabilita' almeno tra i grandi DE e i risultati ci sono stati. Comunque bisogna scegliere la tecnologia in base alle necessita' del progetto e al proprio know-how. Un programma qt girera' su gnome ( girano pure su windows e mac ) senza problemi, per cui e' inutile fossilizzarsi troppo. |
||
19-10-2017, 12:39 | #14 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
Comunque hai ragionissima ed un altro fondamentale e correlato problema di GNU/Linux è l' instabilità anche per il fatto che non c'è una fonte comune. Alla fin dei conti basterebbe anche qualcosa tipo Github dove immettere gli aggiornamenti da usare come torrente innovativo.
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
19-10-2017, 14:35 | #15 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Il problema nasce quando si vogliono usare funzionalita' non implementate da kernel/stdlib, come appunto le funzionalita' grafiche. Ed e' un problema parziale, perche' non e' che un'applicazione che utilizza GTK non funziona su un computer con KDE o viceversa. |
|
20-10-2017, 17:06 | #16 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
21-10-2017, 13:51 | #17 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Per esempio trovi tutti i libri che vuoi sui piu' svariati linguaggi di programmazione, pure con tantissimi esempi di problemi risolti con il linguaggio. Poi trovi libri che parlano di sistemi operativi, ma sempre in maniera molto teorica. Nel mezzo c'e' ovviamente l'API del kernel, l'API della libc ( si, si riferisce proprio al linguaggio C e ci sono ragioni storiche del perche' i sistemi operativi parlano, a basso livello, la "lingua" del C ) su cui i linguaggi poi si appoggiano. Il punto e' che esistono libri ad hoc, ma sono pochissimi e spessi non proprio brillanti nell'esposizione. Sono quei libri che trattano di compilatori, linker e compagnia. Tipo "Linkers and Loaders" di John Levine. Quest'ultimo te lo consiglio assolutamente. E' un'esperienza a dir poco illuminante. |
|
21-10-2017, 15:05 | #18 | |
Senior Member
Iscritto dal: May 2014
Messaggi: 440
|
Quote:
__________________
Ho concluso eccellentemente con diversi utenti qui sul forum !
Però non so come mai (e se sia stato qualcuno) ma la mia firma vecchia è sparita ed io non l' ho cancellata!!! |
|
10-11-2017, 09:08 | #19 |
Junior Member
Iscritto dal: Nov 2017
Messaggi: 1
|
Per imparare sono ottime le guide pubblicate su html.it
__________________
Un team di bravi programmatori |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:55.