So che questa è una risposta davvero tardiva, ma ho solo dovuto parlare.
È un linguaggio magnifico. È una di quelle lingue che provi e, se lo fai, sarai avvolto. L'ho usato per un prodotto interno molto serio e fondamentale in un'azienda, ed è stato egregiamente ammirevole. Lo chiamo la mia lingua preferita; è divertente da usare e davvero produttivo se usato per le attività giuste.
La mia prima curiosità/potrebbe essere utile se il progetto è stato un traduttore da F77 a C. Il mio primo taglio è stato pessimo e lento, e il mio secondo tentativo un po 'di tempo dopo è stato più dolce e veloce - quello era quando ho davvero iniziato a sfruttare correttamente la scansione delle stringhe. Non ho mai completato questo progetto a lungo perduto perché è diventato irrilevante; Ho smesso di lavorare con alcuni ingegneri che continuavano a cercare di convincermi che FORTRAN era buono.
È chiaro che persone come Larry Wall e Guido van Rossum conoscono Icon e Unicon. Quanto bene lo sanno non posso dirlo, ma scommetterei abbastanza bene dal momento che sembrano essere matti. L'influenza è sentita. Icon e Unicon sono una specie di Velvet Underground o Captain Beefheart del mondo musicale; non è mainstream da lungo tempo, ma le persone che conoscono li conoscono e sono fortemente influenzati.
A differenza di VU o Beefheart, (Un) Icon non ha il merito di essere troppo grato per le persone comuni da gestire, quindi l'analogia si rompe male a questo proposito ... In effetti, la sintassi e tutte le sue caratteristiche sono molto pulite e piacevoli alla vista. Qualsiasi somiglianza con Pascal è superficiale. La sintassi di sicuro sembra Pascal per l'occhio inesperto, ma comportamentalmente è pali a parte.
Dove si adatta?Non sarà in concorrenza con C per la codifica hard-core ad alte prestazioni, ma è proprio come la maggior parte delle lingue che non possono battere C quando le sole prestazioni della CPU sono l'unica soluzione. Non può battere la massiccia raccolta di librerie di Perl in CPAN, ma questa è probabilmente l'unica cosa in Perl che lo fuma! Cavolo, se vuoi qualcosa che CPAN offre, riscrivilo e donalo al repository Unicon. Non ha nulla di simile al modello di sicurezza di Java, ma è proprio come la maggior parte degli altri linguaggi. Probabilmente ottieni il punto ora.
Ho iniziato con Icon poi spostato diversi anni dopo in Unicon, che è dove l'attività principale è in questi giorni. L'icona viene mantenuta "stabile, pulita e completa" così com'è. Unicon ha riunito un sacco di estensioni e lo ha trasformato in un progetto coerente. Il più importante è una copertura molto migliore delle chiamate standard O/S e un sistema OO completo di tipo duck-typing.
OO di Unicon supporta anche l'ereditarietà circolare, per non parlare di MI! Questo è principalmente per il cervello-f ** ma anche perché si è dimostrato praticabile. Naturalmente, qualsiasi programmatore sensibile in genere non dovrebbe ottenere quello stupido se non sono veramente attuando qualcosa in matematica (ad esempio Polar < cartesiano < Polar < cartesiana < ...) o Meccanica Quantistica (ad es Saluto < particelle < Saluto < particelle < .. .) che sono gli esempi tipici che mostrano il raro merito dell'ereditarietà circolare.
Per rispondere alla domanda facile, si, è compilato, ma per una sorta di PCODE, che viene quindi eseguito da una macchina virtuale. Gli eseguibili costruiti hanno un'intestazione hash-bang in modo che possano essere eseguiti direttamente. Su Windows, hanno un'intestazione .EXE (o è .COM?) In modo che possano anche essere eseguiti direttamente. Inutile dire che questi non sono portabili tra Unix e Windows, anche se Powershell potrebbe essere in grado di fare qualcosa per consentire agli eseguibili Unix di essere eseguiti direttamente su Windows. In pratica, il passo di compilazione è potente e gestito da normali makefile. Unicon ha anche un passo di compile-n-run quick-n-dirty per fare scherzi, ma qualsiasi progetto al di là di un roughie totale viene meglio servito con una fase make.
Le funzionalità di rete fanno parte di Unicon. Una libreria grafica portatile è stata disponibile per Icon per un lungo periodo e fa anche parte di Unicon. Garbage Collection è un dato dato che è un linguaggio di alto livello.
Le due caratteristiche uniche più importanti sono i generatori e la scansione a stringa. Non entrerò in questi - è meglio che scarichi e giochi attraverso le esercitazioni finché non affonda. Una volta che i generatori sono disponibili per una lingua, la scansione delle stringhe funziona magnificamente. Non credo che la scansione delle stringhe possa funzionare in modo così semplice senza di essa. Ancora una volta, gioca finché non ha senso. È un'alternativa molto interessante e potente all'uso delle espressioni regolari ed è stata una parte cruciale del mio lavoro.
I generatori sono una di quelle cose che richiedono di essere inserite in una nuova lingua. Il fatto che non sia sul radar è una tragedia IMHO. Se dovessi sedermi seriamente e sognare di produrre il prossimo popolare linguaggio open source, questo sarebbe parte del nucleo. Ma chi ha il tempo? Ho delle bollette da pagare.
Le versioni più recenti intorno al 2012+ ora hanno vero multi-threading e sono probabilmente stabili mentre scrivo questo.
Le versioni di Windows sono sostanzialmente aggiornate in questi giorni in Unicon. La compilazione di Windows è stata risolta e ho inserito con successo i miei progetti principali su Windows con pochissimo dolore oltre l'ovvio dolore di dover utilizzare Windows.
Quindi la risposta accettata sarà fondamentalmente qualcuno che dice "Sì, ho"? – random
Ora che hai trasformato il corpo in una domanda reale, ti suggerirei di cambiare il titolo in "Quali sono i pro e i contro del linguaggio di programmazione Icon" o simili –
Peccato, ho risposto alla domanda originale: P – Abel