Su quanti linguaggi di programmazione lavorate quotidianamente e in che modo gestite efficacemente le attività specifiche della lingua [chiuso]

22

Modifica:

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

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

  • Stai facendo un cambiamento mentale quando lavori su ogni lingua?
  • Hai la priorità e mantieni ciascuna attività per lingua separatamente.
  • Esegui il codice a fasi in base all'avanzamento di ogni attività passando senza problemi tra lingue / IDE / Ambiente
  • Applica lo stesso stile / convenzioni di codifica su tutte le lingue (non sulla sintassi)?

Related:

È normale per il programmatore lavorare su più progetti contemporaneamente

    
posta Aditya P 12.04.2017 - 09:31
fonte

14 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, lo spostamento mentale diventa trascurabile. Non ha nulla a che fare con il multitasking. È come camminare per un po ', poi guidare una macchina, poi guidare una bicicletta, poi nuotare. Nessun problema, perché sono cose sequenziali.

Indipendentemente da ciò, il punto è completare un'attività prima di passare alla successiva. Tendo a definire i compiti in termini di funzionalità concreta, correzione o simili. Spesso questo compito viene eseguito con una sola lingua, ma potrebbe aver bisogno di alcuni di essi. Ad esempio, quando si lavora con JNI , in genere si apportano modifiche a Java e ai lati nativi in parallelo.

Alcune risposte:

Do you code in stages based on progress on each task switching seamlessly between languages/IDE/Environment

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

Do you apply the same coding style /conventions on all the languages(Not syntax)?

Se si tratta di un'interfaccia su cui stanno parlando due lingue, allora sì - i nomi di variabili e simili devono essere simili. Altrimenti, cerco di applicare lo stile di codifica tipico di quel linguaggio.

    
risposta data 06.04.2011 - 15:15
fonte
18

C'è uno schema che si forma qui:

  • Front-end: qualsiasi cosa viene eseguita su un browser (javascript, html e css)
  • Business Logic: una parte di tutte le lingue di uso generale
  • Backend: SQL
  • Crea script: un po 'di linguaggio di scripting

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

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

No, ho un punto di programmazione secondo la convenzione della lingua. Un semplice esempio:

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

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

L'utilizzo di convenzioni di codifica visivamente diverse mi aiuta a realizzare uno spostamento mentale tra le lingue. Viceversa, se il mio codice fosse lo stesso in ogni lingua, farò errori sintattici dimenticando quale linguaggio sto codificando.

    
risposta data 06.04.2011 - 12:46
fonte
5

Come indicato da SK-logic, il 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 cambiamento che ho sempre riscontrato è il spostamento di stile dei commenti : se apro un file per modificare rapidamente una riga di codice, spesso si passa a:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?
    
risposta data 06.04.2011 - 21:17
fonte
4

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

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

In realtà, ciò che mi ha infastidito di più è stata l'interruzione da parte dei problemi di assistenza clienti. Passare internamente a un'attività in un'altra lingua non è mai stato un problema in sé.

    
risposta data 06.04.2011 - 09:32
fonte
2

Lavoro con 2 lingue: c # e python.

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

Quando lavoro su un compito, lavoro su quel compito fino a quando non è in uno stato completo, o finché non riesco a concentrarmi su di esso. Ciò significa che, se devo passare da una lingua all'altra, c'è poca o nessuna dissonanza cognitiva, perché avrò già finito di pensare in entrambe le lingue quando avrò terminato l'ultimo compito.

Devo ammettere che prenderò una breve pausa quando uscirò da un'attività, che probabilmente aiuta molto.

    
risposta data 06.04.2011 - 09:22
fonte
2

Il meno possibile. In genere coinvolge 1. Python, più 2. Templates HTML, 3. HTML + CSS e talvolta 4. Javascript. Passare da Python a JS richiede sicuramente uno spostamento mentale, anche perché ho bisogno di usare strumenti diversi.

Aggiungo HTML + CSS come separato dal template HTML anche se potrebbe non essere lingue di per sé (o potrebbero, dipende dalla tua religione), perché richiede anche un cambiamento mentale e l'uso di altri strumenti, sebbene non così male come passare a Javascript. Giocare con HTML + CSS da una prospettiva di progettazione, per rendere la pagina simile al modello richiesto, è una mentalità diversa dalla creazione di modelli HTML. Ma è più ortogonale a Python che Javascript, il che significa che ho bisogno di cambiare la mia mentalità di programmazione per un altro. :)

    
risposta data 06.04.2011 - 09:28
fonte
2

Ogni giorno utilizzo:

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

Uso anche Python, Java e XML (questo conta?) occasionalmente. Il mio lavoro riguarda la modifica di vari siti Web, che potrebbero essere creati in qualsiasi linguaggio web (anche se posseduto da Perl una volta) e utilizzare paradigmi / modelli molto diversi (procedurali, 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 è necessario o meno il punto e virgola alla fine delle righe o se i loop hanno o meno parentesi. Passare da VBScript a JScript è il peggiore in assoluto per questo: i file terminano entrambi inasp e sembrano abbastanza simili a prima vista, quindi ci vuole un po 'per capire perché sto ricevendo errori.

    
risposta data 06.04.2011 - 12:14
fonte
2

Al momento sto scrivendo Ruby, PHP, Java, C e JavaScript e scriverò per almeno 1 ora in ciascuno di questi ogni giorno. Il problema principale è in realtà trovare il tempo poiché sono tutti 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 una sola cosa, quando incontro un blocco mentale con un pezzo di codice, ci vorrà molto tempo per superarlo. Neanche io riesco a prendermi una pausa. Avendo altri progetti, e in particolare altre lingue, per passare a quando mi blocco, significa che quando tornerò alla lingua originale, ho immediatamente una soluzione.

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

Assegnazione di 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 strongmente 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 da essere sostanzialmente non correlate, probabilmente le conterò come progetti separati.

In generale, la mia priorità è "qualsiasi elenco abbia il maggior numero di attività", ma cambierò sempre se rimango bloccato su un problema.

Convenzioni di codifica

È un po 'un mix:

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

A parte: la sfida più grande per me è in realtà il passaggio da un linguaggio di stile all'altro. È molto difficile correre insieme quando si codifica SASS al fianco di Ruby e quindi si deve tornare al CSS per tutto il resto. In misura minore, ho lo stesso problema con HAML / HTML e JSON / XML.

    
risposta data 06.04.2011 - 18:34
fonte
2

Scrivo applicazioni per il lato ISP delle cose, c'è anche una cultura di "fai ciò che ti piace", spesso scritta da molti ingegneri di rete che si dilettano nella programmazione. Devo fare i conti con cadenza settimanale, programmi che sono scritti abbastanza bene, in modo veramente orribile. Quello che incontrerò spesso, e lavorerò su ...

  • Perl , spesso quickie script unici o spesso usati da persone che conoscono (o apprezzano) Perl. Più del materiale legacy è scritto in Perl che trovo. Alcune delle cose peggiori sono scritte in Perl, non perché la lingua è cattiva, ma perché è facilmente abusata dall'avvio dei programmatori. Lo uso ancora per determinati tipi di programmi una tantum. Lo uso raramente per qualcosa di più grande.
  • PHP , un sacco di questo intorno, spesso un linguaggio di partenza per i dilettanti. Alcuni programmi molto ben scritti, alcuni schlock. Per determinati tipi di applicazioni Web, sceglierò PHP perché posso farlo diventare più veloce.
  • Shell Scripting , in genere lo utilizza per l'esecuzione di altri programmi o attività come la lettura dei registri.
  • Aspettatevi , incontrate ancora questo (e fanatici che insistono sul nirvana per eseguire comandi sui dispositivi di rete). Ci lavoro su quando devo, ma un cucciolo viene ucciso da qualche parte nel mondo quando incontro una di quelle migliaia di righe di programmi lunghi senza una sola funzione in vista, solo una lunga pasta iterativa.
  • C , Raramente utilizzato a causa di problemi di portabilità, ma lo userò per eseguire attività specifiche.
  • Java , lo uso spesso a causa dell'ampio supporto della libreria e della facile implementazione. Abbiamo una rete molto eterogenea e uno staff IT che ha un programma diverso dal mio. Con Java posso includere le 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 di scelta.

Ci sono anche altri linguaggi (.net, VB, Phyton, Rails, ecc.) in azienda, ma non ho dovuto lavorare su di loro ... ancora.

Modifica, per la modifica ...

Devi spostarti mentalmente quando lavori tra le lingue. Molto spesso quello che perderò di vista è la sintassi. Tengo pronta una raccolta di libri di riferimento. Troverò che ci vorrà circa mezz'ora per tornare alla mentalità dell'altro linguaggio. Più la sintassi è ottusa per la lingua, più lungo è il turno. Trovo che passare da Java a fare Perl probabilmente impiega più tempo se non ho toccato Perl per un po 'di tempo. Più fai questo, più diventa facile.

    
risposta data 06.04.2011 - 19:16
fonte
1

Uso spesso sei o più lingue all'interno di un progetto. Molti di questi sono solitamente specifici solo per quel progetto.

Lo spostamento mentale è richiesto solo se stai utilizzando una lingua che non è appropriata per un'attività. Altrimenti è naturale usare la soluzione migliore. Diversi gruppi di lingue sono utilizzati per le diverse fasi di un progetto.

    
risposta data 06.04.2011 - 10:34
fonte
1

Uso frequentemente C (embedded), C ++ (desktop), Python, Matlab e VHDL (una sorta di linguaggio di programmazione hardware), spesso tutti nello stesso giorno. Nel mio ambiente, questo tipo di destrezza del linguaggio è essenziale a mio avviso.

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

Passare da uno all'altro rapidamente non è un problema dopo un po ', è come passare da un martello a un cacciavite - lo strumento giusto per il lavoro.

    
risposta data 06.04.2011 - 10:36
fonte
1

Dipende molto da come viene definito il lavoro ... Io uso C # per sviluppare le applicazioni Microsoft Surface ogni giorno. Anche io uso Java ogni giorno per le mie applicazioni Android. Ma cerco di educarmi 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 sulla sintassi)?

Cerco di seguire le convenzioni di codifica di ogni lingua, ma in particolare tra Java e C # ho alcune difficoltà a causa delle parentesi graffe e del metodo dei maiuscoli in C #:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}
    
risposta data 06.04.2011 - 12:48
fonte
0

Costruisco app web. Quindi attualmente il suo:

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

Editor: testo sublime (non disponibile), Visual Studio 2010 (nessuna altra scelta possibile quando si tratta di ASP.Net)

    
risposta data 06.04.2011 - 13:16
fonte
0

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

Non li uso tutti tutti i giorni, ma alcuni giorni li uso tutti senza alcun problema. 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 utilizzo a lavoro come Qt o Ruby on Rails.

    
risposta data 06.04.2011 - 14:35
fonte

Leggi altre domande sui tag