Pagina 4 di 4 primaprima ... 2 3 4
Visualizzazione dei risultati da 31 a 36 su 36

Discussione: [OT] Java vs C++

  1. #31
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Scusate se mi intrometto nella discussione...solo un paio di considerazioni.

    Innanzitutto, trovo quasi "scandaloso" che si insegni VB6 a scuola, non per il linguaggio in se, ma per il fatto che si tratta di un software commerciale e senz'altro sono pochi gli studenti che possono permettersi di installare il software a casa, anche perchè al momento attuale dovrebbero fare il "downgrade" di una licenza VS.NET.

    A parte questo, soprattutto quando si inizia ad apprendere un linguaggio, è quasi essenziale basarsi sulle prerogative di ciò che si sta per realizzare. Ad esempio, quanto deve essere "portabile" il software, ammesso che lo debba essere, quanto contano le performance, quali sono le attitudini dello sviluppatore e così via.

    Tenuto conto di questi aspetti, è possibile procedere con una scelta.

    Non credo che le analisi di mercato siano una garanzia della longevità di un linguaggio, anche perchè sono pochissimi i linguaggi che si possono ritenere "morti"...
    VB6 ne è una dimostrazione: essendo uno dei linguaggi più diffusi, con l'avvento di VB.NET il porting di progetti VB6, soprattutto a livello di conoscenze teoriche, è quasi impossibile.

    NON vedo tempi duri per VB.NET, C#, Java, C++...non c'è che l'imbarazzo della scelta.

    Per quanto riguarda lo sviluppo su Windows, quoto principalmente quello che ha detto netarrow.

    In generale, secondo me, al giorno d'oggi, a meno di non avere esigenze particolari, tenderei ad orientarmi senz'altro a linguaggio che siano completamente object oriented, come VB.NET, C#, Delphi, Delphi.NET, Java, C++, poichè la complessità delle soluzioni che vengono attualmente implementate ne impone quasi l'utilizzo ed è probabile che in futuro questa tendenza sia ancora più marcata.

    Poi, sinceramente, non vedo alcuna preclusione ad apprendere Java o C#, prima l'uno poi l'altro e viceversa o solamente uno dei due: quando il paradigma OOP, in questi casi, è ben chiaro, il passaggio da un linguaggio ad un altro si traduce sostanzialmente nella transizione da una mera sintassi ad un'altra, senza contare che i due linguaggi menzionati hanno molte caratteristiche in comune (un aspetto che non è casuale, ma è pensato proprio per facilitare migrazioni e riutilizzare conoscenze).

    Per fare un esempio, io sviluppo da oltre 5 anni in Delphi: si tratta di un linguaggio orientato agli oggetti, derivato da Object Pascal, che non mi ha comunque precluso dall'apprendere con facilità altri linguaggi come C# o Java, concettualmente del tutto simili ma diversi solo nella sintassi.

    Concludendo il discorso, credo che qualsiasi linguaggio che sia almeno orientato agli oggetti vada bene per iniziare ed acquisire le basi per potersi spostare, all'occorrenza, verso altri linguaggi se e quando diviene necessario.
    Per scegliere quello da cui iniziare, basta valutare la propria indole, conoscere le proprie attitudini e basarsi sulle caratteristiche che rendono un linguaggio abbordabile e soprattutto adatto ad un eventuale progetto di esempio che si intende portare avanti durante lo studio del linguaggio stesso, senza basarsi troppo sul "mercato" che molto spesso propone richieste assurde (come un'esperienza di 5 anni in C#) ed ha un andamento non del tutto prevedibile.

    Ciao a tutti!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  2. #32
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da nordavind
    tutti questi pregiudizi per vb...nel .net intanto gli indici partono
    Le mie critiche sono nei confonti del VB NON .NET, una buona percentuale che ha iniziato con lui ha avuto grandi problemi nel passare ad altro(ovvaimente il discorso non è assoluto), poi pregiudizio significa giudicare senza aver conosciuto, se critico didatticamente VB6.0 o inferiore è perchè l'ho provato e quindi giudicato.

    Tanto per fare esempi c'è gente che cerca di ricrearsi gli eventi in progetti . NET dove sappiamo ci sono ormai i delegate(una sorta di listener di java) che rispettano la mentalità OOP, c'è gente che pensa che gli oggetti che inserisci dentro una form siano oggetti della OOP, in generale da cattive abitudini.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #33
    Utente di HTML.it L'avatar di Birbun
    Registrato dal
    Jul 2003
    Messaggi
    99
    Originariamente inviato da SkOrPiOn`87
    C++.NET è buono come linguaggio?

    E' sedele al C++ originale, o microsoftha fatto la solita merdata..
    Con Visual C++.NET puoi usare sia il C++ standard ANSI sia il cosiddetto C++ gestito che va solo su piattaforme .NET.
    Il vantaggio col C++ gestito è che parti di codice sono per cosi' dire esportabili in altri linguaggi .NET come VB.NET o C#;lo svantaggio è che,secondo me,cercando la portabilità tra i vari linguaggi .NET,col C++ gestito si ha un calo di prestazioni rispetto al C++ standard.
    C'è anche da dire che se non fai programmi per la NASA,non so quanto sia visibile questo calo di prestazioni...

  4. #34
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da alka
    Poi, sinceramente, non vedo alcuna preclusione ad apprendere Java o C#, prima l'uno poi l'altro e viceversa o solamente uno dei due: quando il paradigma OOP, in questi casi, è ben chiaro, il passaggio da un linguaggio ad un altro si traduce sostanzialmente nella transizione da una mera sintassi ad un'altra, senza contare che i due linguaggi menzionati hanno molte caratteristiche in comune (un aspetto che non è casuale, ma è pensato proprio per facilitare migrazioni e riutilizzare conoscenze).

    Per fare un esempio, io sviluppo da oltre 5 anni in Delphi: si tratta di un linguaggio orientato agli oggetti, derivato da Object Pascal, che non mi ha comunque precluso dall'apprendere con facilità altri linguaggi come C# o Java, concettualmente del tutto simili ma diversi solo nella sintassi.
    Non sono d'accordo con questo. Per essere uno sviluppatore Java piuttosto che C++ o Delphi non basta conoscere il linguaggio in sè ma soprattutto padroneggiare una buona fetta delle librerie messe a disposizioni per quel linguaggio per i più svariati usi, come connessione a database, multithreading, networking, costuzione di gui, ecc ecc...

    Apprendere un linugaggio probabilmetne porta via il 5% del tempo totale necessario per sapere programmare in modo effettivo, al di là del semplice hello world, con la restante parte del tempo spesa a studiare le varie librerie. Quindi studiare un linugaggio piuttosto che un altro fa differenza. Un fatto è imparare java e tutto il suo framework, un fatto è studiare C# e tutto il suo framework, nonostante a livello di "linguaggio" siano molto simili.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #35
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da anx721
    Per essere uno sviluppatore Java piuttosto che C++ o Delphi non basta conoscere il linguaggio in sè ma soprattutto padroneggiare una buona fetta delle librerie messe a disposizioni per quel linguaggio per i più svariati usi, come connessione a database, multithreading, networking, costuzione di gui, ecc ecc...
    Una cosa è conoscere il linguaggio di programmazione, un'altra è conoscere le librerie che vengono normalmente approntate da chi produce ambienti di sviluppo che si basano sul linguaggio di programmazione specifico.

    La padronanza del linguaggio di programmazione richiede la conoscenza delle sue funzionalità in termini di operazioni eseguite e sintassi necessaria per ottenerle, oltrechè alle "pratiche migliori" e alle tecniche un po' più avanzate.

    Imparare C# prima e Java poi, o viceversa, è questione di poco tempo.

    Ciò che concettualmente si impara a livello di networking, multithreading e così via con una specifica libreria a supporto di un determinato linguaggio di programmazione può facilmente essere applicato a qualsiasi altro linguaggio che sia affiancato da librerie equivalenti: cambiano alcuni nomi, cambiano alcuni metodi, cambiano eventualmente alcune pratiche ma la base teorica è sempre la stessa.

    Tant'è che ho portato proprio il mio caso a titolo di esempio: ho appreso facilmente Java pur non avendolo mai utilizzato in base a conoscenze teoriche e specifiche ottenute da attività di programmazione in Delphi, e lo sforzo nell'uso di C# è stato pressoché nullo vista la base dei due linguaggi precedenti...poi, l'uso di diversi nomi o di differenti gerarchie di classi per ottenere comunque gli stessi scopi non è un grave problema: basta avere una buona documentazione con cui si possa ricercare velocemente lo strumento adatto a risolvere un determinato compito.

    Originariamente inviato da anx721
    Apprendere un linugaggio probabilmetne porta via il 5% del tempo totale necessario per sapere programmare in modo effettivo, al di là del semplice hello world, con la restante parte del tempo spesa a studiare le varie librerie.
    E' vero, ma a mio avviso è un grosso peccato e il tempo impiegato nell'apprendimento in senso stretto dovrebbe essere maggiormente dedicato al linguaggio, alle sue peculiarità, ai concetti teorici che vi stanno dietro, alle "best practice" o "design pattern" che dir si voglia per la risoluzione di problemi e così via...in seguito, è possibile analizzare le soluzioni a disposizioni in termini di librerie, componenti di terze parti, funzionalità specifiche dell'ambiente di sviluppo utilizzato.

    Secondo me, non è possibile capire e utilizzare efficacemente un linguaggio e le librerie o i framework che vi ruotano attorno se la formazione sul linguaggio non è completa o quasi. Ovvio, forse è proprio in quel caso che, oltrepassando il traguardo del famoso "hello world", si rischia di utilizzare male gli strumenti a propria disposizione o ad utilizzare un quarto della potenza fornita dal linguaggio.

    Originariamente inviato da anx721
    Quindi studiare un linugaggio piuttosto che un altro fa differenza.
    Inteso in senso assoluto, è chiaro che fa differenza: approdare a Java provenendo da VB6 piuttosto che da VB.NET è senz'altro una grossa differenza, ma non è un problema di "classi dal nome diverso", quando dalla diversità del paradigma di programmazione che è un problema senz'altro più rilevante della diversa sintassi. Se invece il paradigma è chiaro, usare un "begin...end" di Delphi o un blocco con parentesi graffe per racchiudere un gruppo di istruzioni è irrilevante.

    Originariamente inviato da anx721
    Un fatto è imparare java e tutto il suo framework, un fatto è studiare C# e tutto il suo framework, nonostante a livello di "linguaggio" siano molto simili.
    Esistono differenze a livello architetturale nelle piattaforme Java e .NET, ma parlando in senso stretto di linguaggi, considerando la perfetta somiglianza delle sintassi, "apprendere il framework" si traduce solamente nel ricercare in una libreria quella classe che svolge le stesse funzioni rispetto ad una classe conosciuta nell'altra libreria. L'ArrayList di .NET ha un ominimo equivalente in Java, tutte le gerarchie derivano da un oggetto comune Object che possiede in entrambe le piattaforme un metodo ToString...e tante altre piccole affinità che rendono davvero minimo lo sforzo di passare non solo da un linguaggio ad un altro, ma addirittura da una piattaforma ad un'altra, di produttori differenti.

    In conclusione, ciò che sostengo io è che, per determinati linguaggi e piattaforme che ricoprono generalmente la maggior parte degli utilizzi in ambito software, sebbene ciascuna tecnologia e i linguaggi relativi mantengano le proprie caratteristiche peculiari, il passaggio dall'una all'altra non è senz'altro così traumatico come si pensa e spesso è sufficiente concentrarsi sulle proprie prerogative e traguardi per poter approfondire così il linguaggio più adatto alle esigenze, senza preoccuparsi di eventuali lacune verso altri linguaggi, lacune che possono essere colmate in breve tempo ammesso che non ci si sia arenati con un linguaggio troppo limitante come può essere VB6 (che produce comunque i propri risultati a livello RAD) oppure che non si sia eccessivamente affezionati ad un particolare prodotto in modo da volerlo impiegare anche negli ambiti per i quali tale prodotto non consente di raggiungere risultati soddisfacenti.

    Sarà solo un'impressione del tutto personale, ma con una formazione abbastanza buona di programmazione ad oggetti, l'apprendimento di Java e C# non è stato affatto traumatico; al momento, utilizzo le conoscenze acquisite sulla libreria base del framework .NET per programmare con Delphi.NET, spero che almeno valga come testimonianza del fatto che c'è una discreta mobilità - merito delle somiglianze tra i linguaggi a livello di paradigma - al contrario di quanto si crede, cioè che non sia così facile passare da un linguaggio ad un altro, generando poi preoccupazioni che fidelizzano gli utenti su un linguaggio di programmazione specifico e impediscono loro di essere flessibili in base alle esigenze.

    Questa almeno è la mia esperienza, del tutto personale s'intende.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #36
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Penso comuqnue che gran parte di ciò che dici dipenda dalla tua esperienza su java e C#, probabilmente non esiste una coppia di linguaggi più simili; basta passare a C++ che già molte cose cambiano nonostante la stretta parentela. Anche io ho iniziato a leggere qualcosa su C# e non ho trovato difficoltà, anche se appunto non conosco tutta gerarchia di classi del suo framework e a quanto pare anche queste sono abbastanza simili a quelle di java.

    Per il resto non sempre si tratta di ricercare l'analogo di una classe o di una funzionalità...ad esempio i thread e la concorrenza sono gestiti in un modo in java che fornisce il dovuto supporto a livello di linguaggio, ed in maniere diversa in c/c++ (sicurametne più complicata), sebbene la teoria dei thread e della concorrenza che c'è sotto sia la medesima.

    Per il resto sono d'accordo che bisognerebbe approfondire le caratteristiche del linguaggio e le best practices, e da questo punto di vista i linguaggi OO offrono davvero tanto da approfondire oltre ai concetti basilari, ma io avevo già messo inconto questo tempo

    E' peraltro vero che conoscere molto bene un linguaggio OO o una relativa libreria sicurametne faciliti l'apprendimento di nuovi linguaggi, il mio intervanto era dovuto solo per puntalizzare che non basta conoscere bene un linguaggio per impararnee in un mese uno nuovo ed essere subtio produttivi.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.