Con quanti linguaggi di programmazione lavori quotidianamente e come gestisci in modo efficace compiti specifici della lingua [chiuso]


22

Modificare:

Come gestisci le singole attività quando lavori su più lingue

Nella gestione quotidiana delle attività, con quanti diversi linguaggi di programmazione lavori?

  • Fai un cambiamento mentale quando lavori su ogni lingua?
  • Dai la priorità a loro e mantieni ciascuna attività per lingua separatamente.
  • Codifichi in più fasi in base all'avanzamento di ogni attività passando senza soluzione di continuità tra lingue / IDE / Ambiente
  • Applicate lo stesso stile / convenzioni di codifica su tutte le lingue (non sulla sintassi)?

Relazionato:

È normale che il programmatore lavori contemporaneamente su più progetti


1
Fare il cambiamento mentale è abbastanza facile. Il principale intervallo mentale che di solito ho è quando provo a confrontare le stringhe con .equalsjavascript. Almeno ho sempre sbagliato in questo modo piuttosto che usare ==in Java.
WuHoUnited

Scrivo 3/4 lingue in un dato giorno per lo stesso progetto. Come gestisco? Conosci le lingue. Tieni a portata di mano i riferimenti. Segui le convenzioni linguistiche.
Rig

Pagare il costo del passaggio tra JavaScript e alcuni linguaggi di programmazione lato server non ne vale la pena al giorno d'oggi, quando Node.js ha il più grande ecosistema di librerie al mondo e quando è possibile scrivere codice sincrono usando async / waitit . Il paradigma "Una lingua ovunque" è utilizzato anche da Meteor (oltre 35.000 stelle GitHub).
Dan Dascalescu,

Risposte:


25

Oggi ho scritto Java, Python, C ++ e SQL (se conta). E sono al lavoro da meno di 2 ore.

Se lo fai regolarmente, il cambiamento mentale diventa trascurabile. Non ha nulla a che fare con il multitasking. È come camminare per un po ', quindi guidare una macchina, quindi guidare una bicicletta, quindi nuotare. Nessun problema, perché sono cose sequenziali.

Indipendentemente da ciò, il punto è completare un'attività prima di passare alla successiva. Tendo a definire compiti in termini di funzionalità, correzione o simili concreti. Spesso questo compito viene svolto con una sola lingua, ma può richiederne diverse. Ad esempio, quando si lavora con JNI , in genere si apportano modifiche sia al lato Java che a quello nativo in parallelo.

Alcune risposte:

Codifichi in più fasi in base all'avanzamento di ogni attività passando senza soluzione di continuità tra lingue / IDE / Ambiente

È importante essere in grado di passare senza soluzione di continuità tra IDE, editor, ambienti. Di solito li tengo sempre aperti.

Applicate lo stesso stile / convenzioni di codifica su tutte le lingue (non sintassi)?

Se è un'interfaccia su cui parlano due lingue, allora sì - i nomi delle variabili e simili devono essere simili. Altrimenti, provo ad applicare il tipico stile di codifica di quella lingua.


8
suona come una gara straordinaria
setzamora il

Di solito cerco di completare un'attività prima di passare alla successiva, ma una singola attività potrebbe richiedere l'uso di più di una lingua. È indispensabile utilizzare un IDE poliglotta come NetBeans e / o tenere sempre aperti tutti gli editor e gli ambienti necessari. Quindi non devi preoccuparti molto del linguaggio (che è solo un "dettaglio di implementazione") e puoi concentrarti sul compito (che è parte di ciò che dovresti davvero realizzare - un programma di lavoro).
Joonas Pulakka,

Sarebbe bello se puoi aggiungere quanto sopra alla tua risposta e aggiungere un po 'di come gestisci gli stili di programmazione di codifica / convenzioni.
Aditya P,

@AdityaGameProgrammer: aggiunti alcuni punti.
Joonas Pulakka,

18

C'è un modello che si forma qui:

  • Front-end: tutto ciò che viene eseguito su un browser (javascript, html e css)
  • Logica aziendale: tutta la pletora di linguaggi generici
  • Backend: SQL
  • Build Script: alcuni linguaggi di scripting

Quindi per me è: javascript, HTML e CSS, C #, Transact-SQL e Windows Powershell.


Applicate lo stesso stile / convenzioni di codifica su tutte le lingue (non sintassi)?

No, mi dedico alla programmazione secondo la convenzione della lingua. Un semplice esempio:

   // C#
   int MyFunction() 
   {
       return 0;
   }

   // Javascript
   function myFunction() {
      return 0;
   }

Impiegare convenzioni di codifica visivamente diverse mi aiuta a fare il passaggio mentale tra le lingue. Al contrario, se il mio codice sembrava lo stesso in ogni lingua, commetterò errori sintattici dimenticandomi in quale lingua sto codificando.


1
+1 Buona risposta. È fantastico essere in grado di mantenere le convenzioni e lo stile di codifica specifici della lingua.
Aditya P,

Bene ... in alcuni casi Javascript ti costringe a lavorare in questo modo a causa del brutto punto e virgola implicito. Ma per il resto non vedrei alcun motivo per farlo ...
Billy ONeal

Oltre allo stile di codifica, un altro modo per facilitare il passaggio mentale tra le lingue è quello di impostare schemi di colori diversi per ogni lingua nei tuoi editor / IDE.
Spoike,

5

Come indicato dalla logica SK, lo spostamento mentale non dovrebbe essere un problema se si utilizzano linguaggi specifici di dominio ben scelti. Ma spesso non puoi scegliere la lingua, quindi a volte ci vuole un momento per cambiare. Nella mia esperienza, la difficoltà è più nel cambiare la sintassi che nel cambiare lo stile di programmazione. L'unico fastidioso spostamento che provo sempre è il cambio di stile del commento : se apro un file per cambiare rapidamente una riga di codice, spesso va:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?

4

Nel mio ultimo lavoro: Java, C ++, C #, JavaScript e VBScript.

Ma per fortuna, tutto quanto sopra era in contesti molto diversi (e attraverso alcuni prodotti) - quindi una volta che conoscevi abbastanza bene ogni base di codice, il passaggio mentale a contesti diversi era in realtà abbastanza facile e logico.

In verità, ciò che mi ha infastidito di più è stata l'interruzione per problemi di supporto al cliente. Passare internamente a un'attività in un'altra lingua non è mai stato un problema in sé.


2

Lavoro con 2 lingue: c # e python.

Li uso entrambi nello stesso progetto, ma ovviamente per compiti diversi.

Quando lavoro su un'attività, lavoro su quell'attività fino a quando non è in uno stato completo o fino a quando non riesco più a concentrarmi su di essa. Ciò significa che, se devo passare da una lingua all'altra, non c'è quasi nessuna dissonanza cognitiva, poiché avrò già finito di pensare in entrambe le lingue quando avrò finito con l'ultimo compito.

Devo ammettere che farò una breve pausa quando esco da un'attività, il che probabilmente aiuta molto.


2

Il minor numero possibile. Comprende generalmente 1. Python, più 2. HTML template, 3. HTML + CSS e talvolta 4. Javascript. Il passaggio da Python a JS richiede sicuramente un cambiamento mentale, anche perché ho bisogno di usare strumenti diversi.

Aggiungo HTML + CSS come separato dal modello HTML anche se potrebbero non essere lingue di per sé (o potrebbero dipendere dalla tua religione), perché richiede anche uno spostamento mentale e l'uso di altri strumenti, anche se non è così male come passare a Javascript. Giocherellare con HTML + CSS dal punto di vista del design, per rendere la pagina simile al mockup richiesto, è una mentalità diversa dalla creazione di modelli HTML. Ma è più ortogonale a Python che a Javascript, il che significa che devo cambiare la mia mentalità di programmazione per un'altra. :)


2

Ogni giorno uso:

  1. HTML / CSS
  2. Javascript / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

Uso anche Python, Java e XML (che conta?) Di tanto in tanto. Il mio lavoro prevede la modifica di vari siti Web, che possono essere creati in qualsiasi linguaggio Web (anche una volta Perl) e utilizzare paradigmi / modelli selvaggiamente diversi (procedurale, MVC, OOP ecc.).

Per rispondere alla domanda: utilizzo principalmente Notepad ++ come IDE per i primi 5 elencati, quindi Visual Studio per Asp.Net.

Può essere un dolore passare rapidamente da una lingua all'altra, ricordando se hai bisogno di punti e virgola alla fine delle righe o se i loop hanno delle parentesi graffe o meno. Il passaggio da VBScript a JScript è il peggiore in assoluto per questo: i file terminano in .asp e sembrano abbastanza simili a prima vista, quindi ci vuole un po 'per capire perché sto ricevendo errori.


Ehi, devi lavorare anche qui! (j / k) Stiamo riscrivendo la base di codice ASP e .NET in PHP, esponendoci alla stessa selezione di lingue.
Greyfade,

2

Al momento sto scrivendo Ruby, PHP, Java, C e JavaScript e scriverò per almeno 1 ora in ognuno di questi ogni giorno. Il problema principale è davvero quello di trovare il tempo in cui sono tutti per progetti non correlati.

Spostamento mentale

Il mio stile di lavoro è tale che mi piace lavorare per lunghi periodi di tempo. Sfortunatamente, questo significa che se ho solo una cosa, quando incontro un blocco mentale con un pezzo di codice, ci vorrà molto tempo per superarlo. Non trovo che fare una pausa sia di aiuto. Avendo altri progetti, e in particolare altre lingue, per passare a quando rimango bloccato significa che quando torno alla lingua originale, ho immediatamente una soluzione.

Pertanto, sì, c'è un cambiamento mentale e penso che mi renda molto più produttivo.

Assegnazione delle priorità alle attività

Uso un task manager (gTasks per Android) e ho un elenco di cose da fare separato per ogni progetto. Se un progetto richiede più lingue, non le separo. Questo di solito è perché saranno fortemente correlati in qualche modo. Ad esempio, JavaScript e Ruby per fare alcune cose AJAX. Se le lingue sono tecnicamente per lo stesso progetto, ma il progetto è così grande che sono essenzialmente indipendenti, probabilmente li considererò come progetti separati.

In generale, la mia priorità è "qualunque sia la lista che ha il maggior numero di compiti", ma cambierò sempre se rimango bloccato su un problema.

Convenzioni di codifica

È un po 'un mix:

  • Se il progetto viene sviluppato con altri, ovviamente mi conformerò a qualunque convenzione sia stata decisa per quel progetto.
  • Se il progetto è personale, mi piace che il mio codice appaia coerente con lo stile dominante nella libreria comunità / standard per una determinata lingua. Trovo difficile leggere il codice Java se tutte le funzioni degli utenti sono in snake_case, per esempio. Allo stesso modo, i metodi camelCase in Ruby sembrano strani e fuori posto.
  • Per le convenzioni che non sono rese ovvie dal semplice uso di una lingua, come il rientro, tenderò ad adottare i miei standard e ad usarli in tutte le lingue che uso. In caso di rientro, utilizzo sempre 2 spazi. Per lo stile di parentesi graffa, uso sempre quello che Wikipedia sta attualmente decidendo di chiamare lo stile di leggibilità del controllo compatto .

A parte: la più grande sfida per me è in realtà il passaggio tra le lingue di stile. È molto difficile correre insieme quando si codifica SASS insieme a Ruby e poi si deve tornare ai CSS per tutto il resto. In misura minore, ho lo stesso problema con HAML / HTML e JSON / XML.


2

Scrivo applicazioni per il lato ISP delle cose, c'è anche una cultura del "fai quello che ti fa sentire a tuo agio", spesso scritta da molti ingegneri di rete che si dilettano nella programmazione. Devo confrontarmi settimanalmente, con programmi abbastanza ben scritti, davvero orribili. Cosa incontrerò spesso e lavorerò su ...

  • Perl , spesso veloci script una tantum, o spesso usati da persone che conoscono (o amano) solo Perl. Trovo che la maggior parte delle cose legacy è scritta in Perl. Alcune delle cose peggiori sono scritte in Perl, non perché la lingua non è buona, ma perché è facilmente usata male dai programmatori principianti. Lo uso ancora per alcuni tipi di programmi unici. Lo uso raramente per qualcosa di più grande.
  • PHP , molto in giro, spesso un linguaggio di partenza per i dilettanti. Alcuni programmi scritti molto bene, alcuni schlock. Per alcuni tipi di applicazioni Web, sceglierò PHP perché riesco a farlo rapidamente.
  • Shell Scripting , principalmente usarlo per eseguire altri programmi o attività come la lettura dei registri.
  • Aspettatevi , incontrate ancora questo (e gli zeloti che insistono sul fatto che sia il nirvana per eseguire comandi su dispositivi di rete). Ci lavoro quando devo, ma un gattino viene ucciso da qualche parte nel mondo quando incontro uno di quei tanti programmi di lunghe righe senza una sola funzione in vista, solo un lungo pastificio iterativo.
  • C , usato raramente a causa di problemi di portabilità, ma lo userò per eseguire compiti specifici.
  • Java , lo uso spesso a causa del vasto supporto della libreria e della facile implementazione. Abbiamo una rete molto eterogenea e uno staff IT che ha un'agenda diversa dalla mia. Con Java posso includere librerie e non preoccuparmi che l'IT debba "aggiornare" qualcosa sul sistema di cui ho bisogno per distribuire il programma. Molto spesso questo è il mio linguaggio di programmazione preferito.

Ci sono anche altre lingue (.net, VB, Phyton, Rails, ecc.) In azienda, ma non ho ancora dovuto lavorarci su ...

Modifica, per la modifica ...

Devi cambiare mentalmente quando lavori tra le lingue. Molto spesso ciò di cui perderò traccia è la sintassi. Tengo pronta una raccolta di libri di consultazione. Scoprirò che ci vorrà circa mezz'ora per tornare alla mentalità dell'altra lingua. Più la sintassi è ottusa per la lingua, più lungo è il turno. Trovo che passare da Java a Perl probabilmente impiega più tempo se non lo tocco da un po 'di tempo. Più lo fai, più diventa facile.


1

Uso spesso sei o più lingue all'interno di un progetto. La maggior parte di essi è generalmente specifica solo per quel progetto.

Lo spostamento mentale è necessario solo se si utilizza una lingua non appropriata per un'attività. Altrimenti è naturale usare la misura migliore. Diversi set di lingue vengono utilizzati per le diverse fasi di un progetto.


Sei un project manager o scrivi del codice?
Aditya P,

@AdityaGameProgrammer, io codice in loro.
SK-logic,

Ti dispiace spiegare un downvote?
SK-logic,

1

Uso C (incorporato), C ++ (desktop), Python, Matlab e VHDL (una sorta di linguaggio di programmazione hardware) su base frequente, spesso tutti nello stesso giorno. Nel mio ambiente, questo tipo di destrezza del linguaggio è essenziale secondo me.

Spesso non riesco a ottenere tutto ciò di cui ho bisogno in un determinato progetto in una lingua in modo efficiente. Ad esempio, sia C sia VHDL incorporati sono piuttosto di basso livello, quindi uso spesso Python per analizzare i loro risultati (o persino generare codice).

Il passaggio rapido tra di loro non è un problema dopo un po ', è come passare da un martello a un cacciavite: lo strumento giusto per il lavoro.


1

Dipende molto da come viene definito il lavoro ... Uso C # per lo sviluppo di applicazioni Microsoft Surface ogni giorno. Java lo uso anche ogni giorno per le mie applicazioni Android. Ma provo a educare me stesso e ho iniziato a usare R, Ruby e Objective-C. A volte ho anche bisogno di un po 'di SQL e se includi linguaggi di script e altre lingue nella tua domanda, allora anche JavaScipt, SPARQL e BeanShell.

Applicate lo stesso stile / convenzioni di codifica su tutte le lingue (non sintassi)?

Cerco di seguire le convenzioni di codifica di ogni lingua, ma soprattutto tra Java e C # ho delle difficoltà a causa delle parentesi graffe e del nome in maiuscolo del metodo in C #:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}

Entrambi gli stili di parentesi graffe sono accettabili in C #. Non passare troppo tempo a tassare il tuo cervello su questo. :-)
Cody Grey,

0

Realizzo app Web. Quindi attualmente è:

  • XHTML
  • JavaScript
  • C # come parte del
  • ASP.Net Framework (questo tipo di linguaggio)
  • T-SQL per la comunicazione del database
  • Inglese per comunicare con gli umani.

Editor: Sublime Text (fuori scelta), Visual Studio 2010 (nessuna altra scelta possibile quando si tratta di ASP.Net)


0

Nel mio lavoro utilizzo Java, C, Python, Django e piccoli frammenti di PHP. Ho anche lavorato su un progetto davvero piccolo nel C ++ di Microsoft.

Non li uso tutti i giorni, ma alcuni giorni li uso tutti senza problemi. In un giorno tipico ne uso solo uno o due. La programmazione che faccio a casa di solito comporta il lavoro con tecnologie diverse da quelle che uso al lavoro come Qt o Ruby on Rails.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.