Prima di tutto mettiamo come premessa che NON ESISTE IL LINGUAGGIO MIGLIORE IN ASSOLUTO e qualsiasi dibattito in questo senso è privo di significato. Ogni linguaggio ha un suo target ben preciso e per questo determinate caratteristiche che lo esaltano in quel determinato contesto.
Detto questo, cerchiamo di fare un po' di ordine perché hai le idee un po' confuse a quanto vedo.
KeyroEvolution ha scritto:Ci sono tanti motivi per cui VB e Delphi non sono validi. Un form creato con VB.Net occupa piu` memoria di uno in C++, lo stesso in Delphi. Un sorgente scritto in C++ e uno in Delphi o VB non ha paragoni.
Già qua si vede che confondi VB, VB.Net, Delphi, Delphi.Net e C++. Prima consigliavi anche C#, quindi il calderone aumenta i propri ingredienti. C#, come gli altri linguaggi .Net citati, usano il Microsoft Framework .Net e sì, occupano più memoria di VB5/6, Delphi Win32/64, C++ con MFC (C non crea form! E nemmeno C++ puro!). Ma questa maggior memoria è perché devi mantenere in memoria le classi del framework, un intelaiatura di classi che quindi sono a ben più alto livello (rispetto al kernel del SO) rispetto alle api native di linguaggi per Win32/64.
Quindi è necessario un distinguo tra linguaggi per .NET e nativi per piattaforma x86 (Win32/64).
Il C gode di estremi vantaggi come i puntatori; non per niente un form in C++ e` un puntatore... Il fatto che lo usino tutti non significa che sia il migliore. Anzi significa che e` semplice ma non potente. Come il Pascal. Molti lo conoscono come linguaggio procedurale ma non e` che sia il migliore.
I puntatori ci sono anche in Pascal, in Object Pascal e di conseguenza in Delphi! VB è semplice perché è stato fatto non come linguaggio veloce e parsimonioso di risorse, ma per rivolgersi ai principianti prima e poi a chi volesse realizzare software (in particolare gestionali e gestori di basi di dati) nel minor tempo possibile. E per questo VB è imbattibile!
Tornando ai puntatori, C e C++ hanno sì i puntatori, ma al contrario di Delphi e Java, che hanno anche questi puntatori, li gestiscono in modo assai farraginoso e senza alcun controllo di validità, portando spesso a dereferenziazioni di puntatori nulli, con conseguenti errori di access violation difficilmente controllabili dal programmatore, pena una lunga sessione di debug. I puntatori sono molti più controllati invece in Delphi e Java.
La cosa che avresti dovuto sottolineare, invece, è che VB non è un linguaggio OOP e nemmeno C lo è. Lo sono invece C++, Java e Delphi: linguaggi completamente OOP, fortemente tipicizzati.
Ti assicuro che il Compilatore del Delphi e` veloce ma per il semplice fatto che ci sono meno controlli, perche` esistono meno potenzialita` rispetto al C. Provare per credere. Poi va beh ognuno fa quello che vuole. Fai pure il Benchmark Di due sorgenti, uno scritto in VB o Delphi e uno in C++. Vediamo chi e` migliore.
Altro calderone immenso di sciocchezze. Delphi ha CENTINAIA di controlli anche nella sua versione gratuita (Turbo Delphi). Vuoi uno screenshot della palette?!
E comunque, come dicevo prima, ciò che conta è quello che si intende fare: difficilmente si userà C++ (e tanto meno C, ormai usato solo per driver e tool a basso livello senza interfaccia grafica!), ma piuttosto VB, C# o Delphi.
Il numero di componenti, poi, non indica assolutamente le potenzialità di un linguaggio. Quello che ha le maggiori potenzialità, infatti, è proprio Delphi poichè è l'UNICO che ti permette di fare linguaggi per piattaforma nativa x86 (Win32/64), per piattaforma .Net, inserendo nel listato anche codice assembler puro, di fare tool di sistema a basso livello (ho fatto io stesso system-wide hook globale, di fare gestionali e motori grafici. Nè C++ nè Java hanno una tale versatilità (il C non è nemmeno da prendere in considerazione, dato che usato solo per i campi di nicchia che ho scritto sopra).
Benchmark? Sì, C++ + più veloce infatti i motori grafici DX o OpenGL sono scritti in C++, perché è un linguaggio più a basso livello. Ma inseriamo codice Assembler direttamente in un programma Delphi, nelle sezioni time-critical, e poi vediamo come i tempi si equivarranno! Ma poi, è davvero necessario scrivere codice in assembler nei programmi del 2010, se non si fanno videogiochi?
Inoltre c'e` da dire che le notazioni con le maiuscole sono scomode,
Perdonami, ma cosa sono le notazioni con le maiuscole?! Intendi identificatori case-sensitive? Se non sbaglio questi sono solo in C/C++... Di sicuro non in Delphi.
per non parlare poi dei vari inceppamenti FrameWork. Non inviare , inviare.
E questo rafforza la mia tesi che fai confusione tra linguaggio .Net e nativi. Delphi, forse ti sfugge, è uno dei pochi linguaggi rimasti che permette di sviluppare in codice nativo per piattaforma x86 (quindi API Win32/64).
Per rinforzare la mia teoria, basta vedere come Linux, un sistema operativo scritto interamente in C++ sia piu` veloce rispetto Windows. Inoltre non si blocca mai. Per cui insomma , piu` le potenzialita` sono maggiori, piu` lento e` il compilatore, ma mi sembra normale. Poi come ho detto, ognuno fa come vuole.
Se questo è per rinforzare la tua teoria, posso dirti che allora crolla tutta miseramente come un castello di carte!
Guarda che anche Windows è scritto interamente in C++, con parti in Assembler (se ne parlava giusto in qualche discussione precedente di questo forum)!!! C++ con le MFC (Microsoft Foundation Classes). Il framework .Net è solo un'aggiunta per programmare per questa piattaforma, un livello di astrazione superiore che aggiunge classi e quindi "API" a oggetti già pronte per essere utilizzate, ma il kernel di Windows è sempre in codice nativo, quindi sempre scritto in C++ (e lo è quello di Vista così come quello del prossimo Windows 7, Vienna).
Poi: Linux non si blocca mai?! AH. E Windows XP invece si blocca sempre? AH. Ma dai, qui si sfiora il ridicolo.
Resta comunque il fatto che: hai ragione quando dici che ognuno può fare quello che vuole. Però da sottolineare, come dicevo all'inizio, che il linguaggio migliore in assoluto non esiste, va valutato in base alle proprie esigenze. E poi, per favore, non facciamo disinformazione: informiamoci e scriviamo a proposito di ciò che conosciamo e non per sentito dire (che poi vengono fuori le sciocchezze e rischia di perdere di credibilità tutto il forum).