2009-03-13 8 views
8

Molti linguaggi di programmazione si presentano con un semplice programma "Hello World".Che cos'è un'anteprima di introduzione della lingua migliore di "Hello World"?

Come programmatore, devo ammettere che questo non offre una visione molto buona delle capacità e delle capacità della lingua.

Che tipo di problema suggeriresti di utilizzare quando fornisci una demo di un linguaggio di programmazione?

+1

Una domanda eccellente. Tali esempi potrebbero anche funzionare come tutorial per la lingua. Sono spesso frustrato nel cercare di imparare nuove lingue, quando le esercitazioni tendono a presumere che il lettore non abbia alcuna conoscenza di programmazione precedente. Preferirei avere una collezione di soluzioni idiomatiche. – TrayMan

risposta

14

Penso che il programma "Hello World" abbia i suoi usi. Si dice molto se è possibile eseguire il programma:

  • Tu hai il tuo IDE/Strumenti configurato correttamente
  • È possibile scrivere una classe eo principale metodo in quella lingua
  • È possibile chiamare una funzione in quel lingua da stampare
  • È possibile modificare un file e formattarlo correttamente per quella lingua
  • Il tuo compilatore funziona e sai come usarlo.

Quindi, per queste ragioni, non trovo un'alternativa migliore a "Hello World".

Tuttavia, in termini di una buona introduzione alle lingue in generale, sono un grande fan delle sfide di codifica come Python Challenge. Ti viene fornita una serie di sfide/puzzle che devi completare con la lingua. Iniziano in modo estremamente semplice (il primo è più facile che scrivere un mondo ciao).

Avanzano rapidamente in attività più complesse e difficili, e in genere sono attività destinate a mostrare un particolare aspetto della lingua.

Vorrei solo che ogni lingua avesse una così divertente sfida di programmazione. Penso che una sfida LISP, Haskell, C++, C, Java, ecc. Sia una divertente introduzione alle lingue per le persone. Potrebbero essere adattati alle lingue.

Il C++ sfida potrebbe iniziare rapidamente con le sfide che coinvolgono puntatori e altri aspetti comunemente fraintesi per aiutare a guidare a casa quei bit difficili mentre il LISP/sfide Haskell potrebbe iniziare a porre alcune domande che sono più su misura per linguaggi funzionali.

+0

Sei sempre libero di adattare la sfida a qualsiasi altra lingua. Vuol dire che avrai meno mani e alcuni dei suggerimenti non funzioneranno altrettanto bene: P –

+0

@ X-Istence, molte delle sfide hanno lo scopo di mostrare una funzionalità di Python.Quindi sì, puoi completare tutto tranne le sfide 5 e 23 con un'altra lingua. Tuttavia, non avrebbe lo stesso effetto. – mmcdole

+0

Grazie per il link alla Sfida Python! – onnodb

3

IMHO, lo scopo del programma hello world è mostrare un programma molto semplice in quella lingua, non mostrare i punti di forza e le capacità.

Sarebbe difficile come ogni lingua ha i suoi punti di forza. Confrontando un set standard di funzioni per ogni lingua potrebbe essere chiedere guai, soprattutto per un libro di introduzione.

0

Dipende da quale caratteristica principale del linguaggio lo distingue dalle altre lingue. Il Haskell quicksort comes to mind.

Con ciò detto, ciao mondo fa mostra come produrre immediatamente una sorta di output.

0

Personalmente quando inizio in un nuovo linguaggio di programmazione tento di riscrivere un pezzo di codice che ho già scritto in una lingua diversa in modo da farmi un'idea della lingua e vedere come si relaziona a quello che ho già imparato nelle mie precedenti esperienze di programmazione.

Le persone suggeriscono di programmare cose semplici come alberi di ricerca binari e altre strutture di dati insieme a un modo semplice per testare che funzioni. L'altra cosa è non rinunciare al linguaggio di programmazione quando le cose iniziano a complicarsi o non si adattano alla tua esperienza precedente.

Per quanto riguarda la ricerca dei punti di forza nei linguaggi di programmazione? Bene, inizia scrivendo una piccola applicazione e poi, una volta che hai la percezione della lingua, guarda i progetti open source scritti in questa lingua. Guarda cosa fa molto bene, guarda le mailing list che hanno scoperto dove erano le parti difficili per quel progetto, dove hanno dovuto aggirare qualche idiosincrasia nella lingua che causava loro problemi.

Determinate lingue che si conoscono a priori sono state pensate per un determinato compito e non è consigliabile utilizzarle al di fuori di tale attività. Ad esempio, PHP è un linguaggio di programmazione Web, il fatto che sia possibile scrivere grandi programmi in esso e eseguirli sulla riga di comando non significa che sia un linguaggio che dovrebbe essere usato per quelle attività.

5

Se siete preoccupati per l'ambito di un programma "ciao mondo", è sempre possibile aggiornare a "ciao universo"

2

"99 bottiglie di birra" è un esempio un po 'più complessa di "Ciao mondo", in modo che possa mostrare le cose che differenziano una lingua dagli altri .

Check out http://99-bottles-of-beer.net/.

0

Sono rimasto molto favorevolmente colpito dalla scelta di Bjarne Stroustrup di realizzare una calcolatrice abbastanza potente, compresa l'analisi. Mi aspettavo che sarebbe stato troppo difficile come primo progetto, ma ha fatto un ottimo lavoro passo dopo passo. E l'applicazione finale non è un giocattolo.

Tutto nel suo nuovo libro, Principi di programmazione e pratica in C++.

0

In alcuni casi "Hello world" potrebbe non essere banale. Vedere ad esempio Struts 2 "Hello world". Per farlo funzionare dovresti avere la configurazione del server, la configurazione dell'ambiente, la tua app distribuita, ecc.

0

Bene una "blinky" è una buona alternativa, ma è più nel mondo embedded che questa è rilevante ...

Per te che ti manca il blinky, è solo per far lampeggiare un LED a un ritmo costante. Tipo di spettacoli su come lavorare con gpio.

/Johan