GNU/Linux >> Linux Esercitazione >  >> Linux

5 motivi per cui amo programmare su Linux

Nel 2021, ci sono più ragioni per cui le persone amano Linux che mai. In questa serie, condividerò 21 modi diversi di utilizzare Linux. Qui spiegherò perché così tanti programmatori scelgono Linux.

Quando ho iniziato a usare Linux, è stato per il suo eccellente supporto multimediale perché ho lavorato nella produzione di film. Abbiamo scoperto che le tipiche applicazioni di editing video proprietarie non erano in grado di gestire la maggior parte del filmato che stavamo estraendo praticamente da qualsiasi dispositivo in grado di registrare un'immagine. A quel tempo, non sapevo che Linux avesse una reputazione come sistema operativo per server e programmatori. Più facevo su Linux, più volevo controllarne ogni aspetto. E alla fine, ho scoperto che un computer era al massimo della sua potenza quando il suo utente poteva "parlare" la sua lingua. Nel giro di pochi anni dal passaggio a Linux, stavo scrivendo modifiche video automatiche, mettendo insieme file audio, modificando in blocco foto e qualsiasi altra cosa potessi immaginare e quindi inventare una soluzione. Non mi ci è voluto molto per capire perché i programmatori amavano Linux, ma è stato Linux che mi ha insegnato ad amare la programmazione.

Si scopre che Linux è un'eccellente piattaforma per i programmatori, sia nuovi che esperti. Non è che hai bisogno Linux da programmare. Ci sono sviluppatori di successo su tutti i diversi tipi di piattaforme. Tuttavia, Linux ha molto da offrire agli sviluppatori. Ecco alcune cose che ho trovato utili.

Fondamenti della logica

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Linux è costruito attorno all'automazione. È molto intenzionale che le applicazioni di base su Linux possano almeno essere avviate da un terminale con opzioni aggiuntive e spesso possono anche essere utilizzate interamente dal terminale. Questa idea a volte viene scambiata per un modello di calcolo primitivo perché le persone credono erroneamente che scrivere software che opera da un terminale stia solo facendo il minimo indispensabile per ottenere un'applicazione funzionante. Questo è uno sfortunato malinteso su come funziona il codice, ma è qualcosa di cui molti di noi sono colpevoli di tanto in tanto. Pensiamo di più è sempre meglio, quindi un'applicazione contenente 1.000 righe di codice deve essere 100 volte migliore di una con dieci righe di codice, giusto? La verità è che a parità di condizioni, è preferibile l'applicazione con maggiore flessibilità, indipendentemente da come si traduce in righe di codice.

Su Linux, un processo che potrebbe richiedere un'ora se eseguito manualmente può essere letteralmente ridotto a un minuto con il comando del terminale corretto e forse meno se analizzato in GNU Parallel. Questo fenomeno richiede un cambiamento nel modo in cui pensi a ciò che fa un computer. Ad esempio, se il tuo compito è aggiungere un'immagine di copertina a 30 file PDF, potresti pensare che questo sia un flusso di lavoro ragionevole:

  1. Apri un PDF in un editor PDF
  2. Apri il coperchio anteriore
  3. Aggiungi un PDF alla fine del file di copertina
  4. Salva il file come nuovo PDF
  5. Ripeti questo processo per ogni vecchio PDF (ma non duplicare questo processo per ogni nuovo PDF)

È per lo più roba di buon senso e, sebbene sia dolorosamente ripetitiva, fa il suo lavoro. Su Linux, tuttavia, puoi lavorare in modo più intelligente. Il processo di pensiero è simile:in primo luogo, escogiti i passaggi necessari per un risultato di successo. Dopo alcune ricerche, scopriresti il ​​pdftk-java comando e scopriresti una soluzione semplice:

$ pdftk A=cover.pdf B=document_1.pdf \
 cat A B \
 output doc+cover_1.pdf

Una volta che hai dimostrato a te stesso che il comando funziona su un documento, ti prendi del tempo per conoscere le opzioni di looping e stabilisci un'operazione parallela:

$ find ~/docs/ -name "*.pdf" | \
 parallel pdftk A=cover.pdf B={} \
 cat A B \
 output {.}.cover.pdf

È un modo di pensare leggermente diverso perché il "codice" che scrivi elabora i dati in modo diverso rispetto alla linearità forzata a cui sei abituato. Tuttavia, uscire dal tuo vecchio modo di pensare lineare è importante per scrivere codice effettivo in un secondo momento e ha il vantaggio collaterale di consentirti di calcolare in modo più intelligente.

Connessioni di codice

Indipendentemente dalla piattaforma per la quale stai programmando quando scrivi il codice, stai intrecciando un intricato reticolo di connessioni invisibili tra molti file diversi. In tutti i casi tranne i più rari, il codice attinge dalle intestazioni e si basa su librerie esterne per diventare un programma completo. Questo accade su qualsiasi piattaforma, ma Linux tende a incoraggiarti a capirlo da solo, piuttosto che fidarti ciecamente del kit di sviluppo della piattaforma che se ne occuperà per te.

Ora, non c'è niente di sbagliato nell'affidarsi a un kit di sviluppo per risolvere la libreria e includi percorsi. Al contrario, quel tipo di astrazione è un lusso di cui dovresti goderti. Tuttavia, se non capisci mai cosa sta succedendo, è molto più difficile ignorare il processo quando devi fare qualcosa che un kit di sviluppo non conosce o risolvere i problemi quando si presentano.

Questo si traduce anche su tutte le piattaforme. Puoi sviluppare codice su Linux che intendi eseguire su Linux e altri sistemi operativi e la tua comprensione di come viene compilato il codice ti aiuta a raggiungere i tuoi obiettivi.

Certo, non impari queste lezioni semplicemente usando Linux. È del tutto possibile programmare beatamente in un buon IDE e non pensare mai a quale versione di una libreria hai installato o dove si trovano le intestazioni di sviluppo. Tuttavia, Linux non ti nasconde nulla. È facile scavare nel sistema, individuare le parti importanti e leggere il codice in esse contenuto.

Codice esistente

Sapere dove si trovano le intestazioni e le librerie è utile, ma averle a cui fare riferimento è un altro vantaggio in più alla programmazione su Linux. Su Linux, puoi vedere il codice sorgente praticamente di tutto ciò che desideri (escluse le applicazioni che non sono open source ma che funzionano su Linux). Il vantaggio qui non può essere sopravvalutato. Man mano che impari di più sulla programmazione in generale o sulla programmazione di qualcosa di nuovo per te, puoi imparare molto facendo riferimento al codice esistente sul tuo sistema Linux. Molti programmatori hanno imparato a programmare leggendo il codice open source di altre persone.

Sui sistemi proprietari, potresti trovare documentazione per sviluppatori con esempi di codice. È fantastico perché la documentazione è importante, ma impallidisce rispetto all'individuazione della funzionalità esatta che desideri implementare e alla ricerca del codice sorgente che dimostra come è stato eseguito in un'applicazione che usi ogni giorno.

Accesso diretto alle periferiche

Qualcosa che spesso davo per scontato dopo aver sviluppato codice per società di media che utilizzano Linux è l'accesso alle periferiche. Ad esempio, quando colleghi una videocamera a Linux, puoi estrarre i dati in entrata da /dev/video0 o simili. È tutto in /dev , ed è sempre il percorso più breve tra due punti per arrivarci.

Non è così su altre piattaforme. La connessione a sistemi al di fuori del sistema operativo è spesso un labirinto di SDK, librerie limitate e talvolta NDA. Questo, ovviamente, varia a seconda di cosa stai programmando, ma è difficile battere l'interfaccia semplice e prevedibile di Linux.

Livelli di astrazione

Al contrario, Linux fornisce anche un sano insieme di livelli di astrazione per quando l'accesso diretto o la codifica manuale finiscono per creare più lavoro di quello che si desidera fare. Ci sono comodità che si trovano in Qt e Java e ci sono interi stack come Pulse Audio, Pipewire e gstreamer. Linux vuole per essere in grado di codificare, e si vede.

Aggiungi a questo elenco

Ci sono più ragioni che rendono la programmazione su Linux un piacere. Alcuni sono concetti ampi e altri sono dettagli eccessivamente specifici che mi hanno risparmiato ore di frustrazione. Linux è un ottimo posto dove stare, non importa quale piattaforma stai prendendo di mira. Che tu stia solo imparando a programmare o che tu sia un programmatore alla ricerca di una nuova casa digitale, non c'è spazio di lavoro migliore per la programmazione di Linux.


Linux
  1. 10 motivi per amare Linux nel 2021

  2. Perché i programmatori adorano il packaging di Linux

  3. Perché mi sono innamorato di Antergos Linux

  4. Perché Linux? – Alcuni motivi per la conversione in Linux

  5. 12 motivi per cui ogni amministratore di sistema Linux dovrebbe essere pigro

Linux vs Mac:7 motivi per cui Linux è una scelta migliore del Mac

I 10 motivi principali per utilizzare Linux

I 20 principali motivi per cui dovresti scegliere un server Linux

Linux vs Mac OS:15 motivi per utilizzare Linux invece di Mac OS

Motivi per cui consiglio di utilizzare Debian Linux

6 motivi per cui Linux non ha più app