Domanda

Lavoro in un ambiente Microsoft, quindi posso usare il mio martello C # su tutti i chiodi che incontro. Detto questo, quali lingue (compilate, interpretate, script, funzionali, di qualsiasi tipo!) Completano la conoscenza di C # e per quali scopi? Ad esempio, ho spostato molte funzionalità di script lontano dalle app della console compilate e negli script Powershell. Se sei uno sviluppatore MS, hai trovato una nicchia nel tuo mondo per altre lingue come F #, IronRuby, IronPython o qualcosa di simile, e quale nicchia riempiono?

Nota: questa domanda è rivolta alle persone sviluppatrici di Microsoft poiché non riesco a scappare e iniziare a installare stack LAMP attorno alla mia azienda e quindi a doverlo supportare per sempre. :) Tuttavia, sentiti libero di menzionare qualsiasi altra lingua che hai trovato interessante per svolgere un determinato compito / ruolo nel tuo mondo oltre alla tua lingua principale.

È stato utile?

Soluzione

Python / Perl / Ruby / PowerShell sono ottimi integratori di C # / VB.NET. Se il tuo capo ti consegna un file di testo e ti dice di inserirlo nel database una o due volte, allora uno qualsiasi di Perl / Python / Ruby (non sono sicuro di PowerShell ma immagino che non sia molto più difficile) dovrebbe andare bene analizzalo. Ad ogni modo, per le tue applicazioni principali sarai probabilmente bloccato in C #. Puoi utilizzare uno dei linguaggi più dinamici per generare codice in C #.

Poiché ti trovi in ??un ambiente Microsoft, probabilmente la tua migliore possibilità di far accettare la tua soluzione è PowerShell. Accanto a questo direi IronPython o qualcos'altro che si integra con il CLR. Ma il problema principale è che per qualcun altro per mantenere ciò che fai, dovrebbero sapere qualunque lingua tu stia usando. MS in futuro ha in programma di utilizzare PowerShell molto di più, quindi è probabilmente più semplice giustificare PowerShell quindi dire Python / Perl / Ruby.

Se stai solo elaborando un file di testo per una volta, usa. O la creazione di un generatore di codice temporale per generare tutto il codice e quindi intende mantenere il codice generato, quindi non importa. Sei tu quello che consumerà i risultati e se risparmi tempo usando Perl, allora più potenza per te. Ma se stai facendo qualcosa che verrà usato più e più volte (come un generatore di codice attivo in cui cambi i modelli ed esegui il generatore invece di mantenere il codice generato), allora altri sviluppatori che lavorano su quello che hai fatto dovranno conoscere la lingua hai usato. È molto più difficile discutere dell'apprendimento di Perl / Ruby / Python in un Microsoft Shop. Ma PowerShell sembra l'argomento più semplice. Penso che il grande piano di MS sia che alla fine le applicazioni esporranno più funzionalità per Power Shell attraverso i commandlet. Supponendo che ciò accada, PowerShell è ancora più semplice perché esporrà tonnellate di funzionalità gestibili tramite script che non otterrai in nessun altro modo.

Altri suggerimenti

Un bel linguaggio di scripting è sempre un buon strumento da avere sulla cintura. Vedi Ruby o Python .

Uso Python per la prototipazione, dal momento che non c'è quasi nessuna svolta tra le modifiche e l'esecuzione della nuova versione del codice. Potrei persino usarlo per un vero progetto: più lo uso, più mi piace.

Ci vorrà un po 'per abituarsi come programmatore C #, tuttavia - il sistema di indentazione-definisce-struttura che usa all'inizio è un po' strano.

Dal momento che sei in un negozio MS, ti suggerirei PowerShell come un linguaggio di script decente da imparare. Gioca bene con C #. Sono anche un grande fan di Ruby.

Vorrei un secondo o un terzo pitone. In particolare, IronPython (ttp: //www.codeplex.com/Wiki/View.aspx? ProjectName = IronPython) ti consente di imparare Python ma ti dà anche accesso alle chicche del framework .net.

È abbastanza utile per le attività relative allo scripting, quindi probabilmente sarà utile per la tua vita di programmazione quotidiana, e anche un bel modo per andare in giro in un modo sperimentale di codifica / prototipazione.

Anche se è un po 'un linguaggio marginale, sono costretto a menzionare Erlang . Erlang è un linguaggio eccellente da avere nella tua cassetta degli attrezzi poiché i suoi punti di forza insoliti tendono a complimentarsi con altre piattaforme di programmazione. Erlang è molto utile per la realizzazione di sistemi distribuiti, concorrenti, tolleranti ai guasti. È molto utilizzato nel mondo della messaggistica istantanea e della telefonia in cui sono necessarie architetture distribuite, ma interconnesse.

Magari gioca con Boo e vedi cosa ne pensi.
Boo su Codehaus.org
Boo su Wikipedia

Se stai usando il framework .Net il linguaggio non è davvero importante poiché il compilatore e l'interprete creano lo stesso codice IL in ogni caso.
Se ti allontani dal mondo .Net, sono dell'opinione che gli strumenti di sviluppo e le lingue siano una cassetta degli attrezzi. Mi sforzo di utilizzare gli strumenti giusti per il lavoro a portata di mano, prendendo in considerazione quale sia la base di competenze degli altri sviluppatori e quale direzione una società stia cercando ovviamente (sono un consulente).

Sono con Jjnguy. Prova uno dei linguaggi di scripting. Inoltre come bonus, quando impari Ruby / PythonPearl, ecc ... è una droga gateway ... err il linguaggio per lo sviluppo per altri ambienti.

Provare le lingue al di fuori della normale casella degli strumenti ti darà nuovi modi di affrontare le cose nella tua lingua preferita attuale. Anche se non li usi per linguaggi di progetti seri come Perl (per la manipolazione dei dati), Lisp ( programmazione funzionale ) e Javascript ( programmazione basata su prototipi ) ti insegneranno nuovi modi a pensare a problemi nella tua lingua attuale.

Come sviluppatore web di professione, potresti esaminare la famiglia XSLT / XPath poiché per alcuni tipi di elaborazione XML possono essere strumenti molto potenti.

Concesso, in C # 3.x Linq2Xml espone alcune funzionalità simili in linea.

XSLT, tuttavia, può essere un modo efficace per separare i dati dalla presentazione nelle tue app.

Sono molto interessato a F # e ad alcune delle altre nuove lingue in CLR / DLR. Le lingue DLR potrebbero essere molto migliori per la tua interfaccia utente, perché non ti fanno lanciare molte cose stupide.

Tuttavia, penso che sia importante tenere presente che l'apprendimento di una nuova lingua, specialmente in una nuova area, come la programmazione funzionale, è sempre un buon modo per riqualificare la tua mente in modo da essere esposto a nuovi concetti e puoi programmare meglio nella tua lingua preferita, anche se non usi mai quelle nuove lingue.

Dai un'occhiata a Boo: funziona in cima allo stack .NET, ma la sua sintassi è più simile a Python.

Per imparare una nuova lingua che integra C #, andrei con C ++. Puoi usarlo in uno stile "molto meglio di p / invoke" per ottenere l'accesso al codice non gestito dalle tue app C #. Puoi quindi iniziare a usarlo per scrivere le app con limiti di memoria e / o bit critici per le prestazioni, se trovi che alcune delle tue applicazioni .NET iniziano a registrare tutta la RAM e / o la CPU o in genere non sono veloci come ti piacerebbe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top