DOMANDA C, C++ o Java?

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
S-ni, il C aiuta a capire alcuni fondamenti ma come ti dicevo puo essere impiegato in praticamente tutte le architetture, forse per quello si usa all'universita', poi ognuno fara' da grande cio che vuole, ma poi per ogni linguaggio ci sono tutta una serie di particolarita'/diversita' da imparare. Poi c'e' la grande divisione tra procedurali e non, quelli alla vecchia come me in genere preferiscono i primi. Come suggeriva qualcuno sopra, le basi generali si imparano con qualche pseudo-code, diagrammi, etc.
Ah ok, anche se dubito che incentrerò la mia futura (si spera) carriera sul C. Però comunque è una cosa senza cui non si va da nessuna parte

Si era per dire, per l'oop ovviamente si sceglie un linguaggio oop. Ma restringere un linguaggio in oop o non oop e' limitante, in c++ ci sono montagne di funzionalita' che non c'entrano con oop ma sono features che il C non ha.
Certo certo
 

bigendian

Utente Attivo
751
432
OS
Linux
Ah ok, anche se dubito che incentrerò la mia futura (si spera) carriera sul C. Però comunque è una cosa senza cui non si va da nessuna parte
mah, tempo fa ricordo un ingegnere, a mio avviso molto bravo col c++, usava gli ultimi standard e conosceva bene anche tutte le ultime novita' di clang, e molto bravo con python, js e altri linguaggi, bravo anche in quanto matematico e esperto di algoritmi, che mi disse che se doveva programmare in C non sapeva bene come fare. La cosa mi stupi', anche perche all'uni qualche esercizietto c'e' sempre. Ma conferma che il C non e' poi alla fine indispensabile.

Dipende da quello che vorrai fare, nel mio caso, essendo sempre stato appassionato anche d'elettronica, mi sono formato con un profilo misto hardware/software dove il C calza a pennello.
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
Da questo punto di vista ho le idee abbastanza confuse: vorrei fare sia web development, sia app development sia sicurezza informatica, ma non saprei proprio decidermi
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,558
12,947
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Da questo punto di vista ho le idee abbastanza confuse: vorrei fare sia web development, sia app development sia sicurezza informatica, ma non saprei proprio decidermi
Questo è un bel quesito, che secondo me andrebbe affrontato in un altro topic essendo un argomento differente ^__^
 
  • Mi piace
Reazioni: Andretti60

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Il Java e' anche procedurale. E si puo programmare ad oggetti anche in C, vedi ooc
Non sono esperto in C, quindi non lo sapevo che si potesse programmare ad oggetti.
Buono a sapersi

@Hero467 dovresti scegliere un campo.
Io sviluppo app mobile e spesso includiamo anche cose di sicurezza.
Ad esempio, con Kotlin sviluppiamo App e a basso livello mettiamo cose in C++ per avere sicurezza.
Se te lo stai chiedendo, si, C++ e Kotlin possono comunicare grazie a JNI.
 

giammo82

Utente Attivo
1,210
526
A me mi sa più facile il C che il C++ , non so perché ma faccio parte della vecchia scuola questi linguaggi interpretati come il Python mi creano più problemi che altro


Inviato dal mio iPhone utilizzando Toms Hardware Italia Forum
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,948
11,581
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
non lo sapevo che si potesse programmare ad oggetti
poco usato in Italia credo, molto di più in America, c'è una versione del C chiamata Objective C che, se non ricordo male, è stata sempre usata da Apple e continua ad essere presente nell'IDE Xcode, ma penso che @Andretti60 ne sappia molto di più su questo.
 

Andretti60

Utente Èlite
6,440
5,091
poco usato in Italia credo, molto di più in America, c'è una versione del C chiamata Objective C che, se non ricordo male, è stata sempre usata da Apple e continua ad essere presente nell'IDE Xcode, ma penso che @Andretti60 ne sappia molto di più su questo.
qui veramente andiamo off topic, volete che lo faccia? La storia di OOP e' in realtà triste, inizia dagli anni 50 e 60 con Simula seguito da SmallTalk, poi e' diventato una buzzword, e lo dobbiamo (indovinate un po') a proprio quel Steve Jobs.

Non sono esperto in C, quindi non lo sapevo che si potesse programmare ad oggetti.
Buono a sapersi
No, non e' buono per nulla.
In realtà non c'è nulla di magico nel OOP, il libro linkato (puramente accademico) non fa altro che mostrare come sia possibile usare il linguaggio C per tecniche proprie di OOP, cosa che sapevamo già si potesse fare perché in fondo C++ e' una estensione del C, entrambi i compilatori sono scritti in C (e si possono quindi perfino autocompilare). Se si vuole usare veramente OOP, meglio farlo con un linguaggio nato per OOP. Mai reinventare la ruota.
 

bigendian

Utente Attivo
751
432
OS
Linux
Ma ogni cosa ha un suo perche', sapere che si puo programmare ad oggetti anche in C e' buona cosa, specie a scopo didattico, perche' ci sono casistiche in cui il c++ non si puo usare. Ovviamente acrobazie che dove c'e' disponibilita' c++ meglio non fare.


Certo che chi vuole programmare ad oggetti non lo fara' in C. Anche se piu di una volta ho visto spipettare con oggetti e design patterns per il solo gusto di applicarli dove non serve e tanto per complicare la vita a tutti i colleghi che poi metteranno mano al codice, buttando ore lavoro.
Ricordo un mio collega a zurigo, che veniva al lavoro in cravatta, solite schifezze d'uffucio dove arriva uno e vuole scavalcare tutti, la sua esperienza ere di qualche programmino in porcheria borland C++, si compro un libro di design pattern e creo' un programma con pattern ovunque pretendendo di insegnare agli altri. Per fortuna non lavoro piu in ufficio da 16 anni e mi innervosisco di meno.

Si dice che i linguaggi oop sono stati creati per mantenere grandi progetti organizzati, delegare compiti, organizzazione fondamentale quando il codice e' grosso. Ma anche questo e' vero a meta', il kernel e' il piu grande progetto opensource al mondo, ed e' in C.
 

Andretti60

Utente Èlite
6,440
5,091


Si dice che i linguaggi oop sono stati creati per mantenere grandi progetti organizzati, delegare compiti, organizzazione fondamentale quando il codice e' grosso. Ma anche questo e' vero a meta', il kernel e' il piu grande progetto opensource al mondo, ed e' in C.
Ecco, ero in accordo fino a questo punto.
Per me tutta la discussioni tipo C contro C++ e OOP contro programmazione procedurale, sono POS (in inglese, pezzi di m****).
I Linguaggi come le tecniche di programmazione sono solo strumenti, occorre usare il migliore per il tipo di applicazione che si sta creando.

=====
Piu genericamente:

Vedo troppe volte citare Linus Trovalds sbraitare contro C++, e quindi “se lo dice lui” significa che OOP non serva a una pippa, quando invece si dovrebbe citare anche il contesto in cui lo dice, ossia che lui “preferisce” il C per scrivere un sistema operativo (che è un vero unico e particolare tipo di applicazione), e lui stesso dice che è meglio usare OOP in altre situazioni.
Non è il linguaggio che trasforma un cattivo programmatore in uno buono. Un cattivo programmatore continuerà a scrivere POS, indipendentemente dal linguaggio.

Personalmente sono poche volte in accordo con Trovalds, che secondo me “parla troppo” occorrerebbe pesare le proprie parole specie quando si diventa una personalità. Non è il solo, è solo uno dei tanti come Richard Stallman (a.k.a. RMS)
non per nulla i due finiscono sempre a pugni in faccia. Persone che usano il cervello cominciano a perdere interesse nel sentire urlare “al lupo”, mentre altri creano un culto. In poche parole, chi parla troppo finisce solo con il rendere la vita più difficile, specialmente per chi sta iniziando a studiare. E mi rendo conto che in questo momento sto facendo lo stesso, per cui mi fermo qui.
 
Ultima modifica:

bigendian

Utente Attivo
751
432
OS
Linux
I Linguaggi come le tecniche di programmazione sono solo strumenti, occorre usare il migliore per il tipo di applicazione che si sta creando.
Su questo concordo, ne il linguaggio ne l'IDE fanno il programmatore, poco ma sicuro.

Persone che usano il cervello cominciano a perdere interesse nel sentire urlare “al lupo”, mentre altri creano un culto. In poche parole, chi parla troppo finisce solo con il rendere la vita più difficile, specialmente per chi sta iniziando a studiare.
Questa pero scusami non l'ho capita. Siamo perfettamente on topic, visto si domandava di scegliere tra C e C++ o Java. Si stanno dando informazioni varie di cui nessuno deve prendere paura. Non entrero' tuttavia in bambinesche sfide di chi sa di piu o di meno sulle origini di oop.

Io non sono un burattino delle scelte ne di Torvalds, di cui ultimamente ho un po' perso stima, per una serie di motivi che non sto qui a cirtare, ne di RMSper cui la mia stima e' zero. Tuttavia ci sono molti aspetti puramente tecnici su cui sono d'accordo con loro.
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
Domanda: il titolo inglese del libro in C consigliato da @Andretti60 è per caso C How to program? Perché cercando notizie su internet ho trovato un pdf della versione inglese, o almeno credo. È la sesta edizione. Non ho problemi a studiare da un libro inglese, mi basta sapere che sia quello giusto
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili