PDA

View Full Version : Produttività linguaggi di programmazione


MasterDany
18-04-2008, 20:38
Ciao a tutti.Questo domanda credo che sia un po' difficile(almeno per alcuni).Leggendo alcuni post(se volete ve li linko) di fek vedo che non ama python.In un post paragonava Ruby a C++ dicendo che alcune cose si potevano fare con più sicurezza col primo.In un altro post consigliava l'utilizzo di C# e JAVA dicendo che erano due linguaggi che potevano rendere com C++.Quello che voglio domandarvi riguarda un po' la programmazione in generale.Altri linguaggi possono rendere come il re C++?
In alcuni post ho letto che C++ è un linguaggio in continuo calo infatti sono "pochi" i programmatori che ne fanno uso è vero?

MasterDany
18-04-2008, 21:08
frasi come queste
Ma a chi serve piu' il C++?
Devono essere prese in considerazione?

wisher
18-04-2008, 21:11
Dipende da quello che vuoi fare.

MasterDany
18-04-2008, 21:15
Ad esempio se voglio creare un engine 2D che linguaggio mi conviene usare?Python?JAVA?C#?

arcer
18-04-2008, 21:16
il linguaggio è lo strumento che ti serve per raggiungere un obiettivo....


il mio prof mi diceva sempre:

per stringere una vite di solito usi un cacciavite, ma puoi usare un coltello, le dita, una tenaglia, insomma quello che vuoi.....

la vite la stringi lo stesso ma lo strumento che usi ti può rendere la vita piu facile e il prodotto finale migliore rispetto ad un altro strumento....





madonna quando sono filosofico...:sbav: :sofico:

khelidan1980
18-04-2008, 21:19
Ad esempio se voglio creare un engine 2D che linguaggio mi conviene usare?Python?JAVA?C#?

ne abbiamo discusso anche in altri 3d,java e c# sono i piu indicati,non ha senso spaccarsi la testa con C++

MasterDany
18-04-2008, 21:28
E python e ruby possono andare per engine 2d?

marko.fatto
18-04-2008, 21:39
E python e ruby possono andare per engine 2d?

cdimaaaaaauroooooooo :asd:

MasterDany
18-04-2008, 21:42
:asd: aspettiamo :)

marko.fatto
18-04-2008, 21:53
comunque per ruby le libreria di grafica sono orientate più al web come quelle per interfacciarsi alle API di flickr.. probabilmente esisteranno dei binding per qt o wxwidgets come ci sono per python (ad esempio wxpython) ma non c'ho mai provato a fare qualcosa :stordita:

VICIUS
18-04-2008, 21:59
E python e ruby possono andare per engine 2d?
Entrambi hanno binding per opengl piuttosto maturi quindi puoi usarli tranquillamente per fare qualche giochino. Di sicuro sono linguaggi inadatti per grandi progetti in cui devi gestire decine di milioni di triangoli ogni secondo ma hanno l'invidiabile pregio di insegnarti a programmare. :)

MasterDany
18-04-2008, 22:09
Se invece devo creare un engine 3D devo impelagarmi con C++? O per fare cose decenti(per decenti intendo veri e proprio giochi[PES2008...] posso usare anche C# e JAVA?E python?E possibile usarlo per engine 3D?

Penso che con ruby sia impossibile.Esiste qualche altro linguaggio per fare engine 3D?

songoge
18-04-2008, 22:25
Se invece devo creare un engine 3D devo impelagarmi con C++? O per fare cose decenti(per decenti intendo veri e proprio giochi[PES2008...] posso usare anche C# e JAVA?E python?E possibile usarlo per engine 3D?

Penso che con ruby sia impossibile.Esiste qualche altro linguaggio per fare engine 3D?

Sicuramente c++ per creare un engine 3d.
Java da scartare subito. Per fare un gioco 3d è pesante come un pugno nello stomaco.

Inoltre si sceglie il linguaggio di programmazione in funzione di ciò che vuoi fare.
Vuoi creare un programma per una lavatrice?Usi Java, o al massimo C++.
Devi creare un programma per il web? Php, java, asp.net
Creare giochi? C++
Librerie di supporto ad altri programmi?C++
Programmi windows? Usi visual studio. Quindi scegli indifferentemente tra C# e Vb.Net

Quindi. Ogni problema può essere risolto anche con più linguaggi di programmazione. Ma solo uno (o pochi) risolvono il problema nel miglior modo!

VICIUS
18-04-2008, 23:35
Se invece devo creare un engine 3D devo impelagarmi con C++? O per fare cose decenti(per decenti intendo veri e proprio giochi[PES2008...] posso usare anche C# e JAVA?E python?E possibile usarlo per engine 3D?

Penso che con ruby sia impossibile.Esiste qualche altro linguaggio per fare engine 3D?
Non necessariamente. Progetti con budget milionari come pes devono gestire scene incredibilmente complesse e disegnarle in tempi strettissimi. Sono dei piccoli sistemi realtime sotto questo aspetto e linguaggi ad alto livello come ruby o python non offrono un controllo adeguato a differenza di C++ in cui si può giocare praticamente su tutto.

In ogni caso puoi anche scrivere il motore in C++ e fare tutto il resto del gioco in linguaggi di scripting. Le ultime avventure grafiche della Lucas per esempio sono scritte praticamente tutte in lua.

C# e Java penso vengono scartati più che altro per mancanza di librerie .net o della jvm sulle piattaforme su cui si intende pubblicare i giochi. Quando investi 10 milioni in un gioco è importante raggiungere il mercato più ampio possibile per rientrare nelle spese. Se vuoi scrivere un gioco per x360 puoi usare tranquillamente C# e XNA ma Java è da escludere perché non c'è una jvm. Su sistemi non microsoft come la ps3 o il wii invece C# non partirebbe perché non c'è .net. Oltretutto c'è anche da considerare le varie librerie di terzi che si vogliono usare.

Un buon programmatore è umile e conosce le proprie capacità. Ricorda quindi che scrivere un motore 3d come quelli odierni è impossibile per un singolo programmatore, anche con decenni di esperienza alle spalle. Se ci provi da solo, tu che sei agli inizi, ne ricavi solo grossi mal di testa e delusioni. Comincia con giochini testuali o 2d come mastermind, pong...

Come ultima cosa non scartare ruby o python a priori. Con il primo io mi sono scritto decine di script e ora sto cominciando ad usarlo per programmi grafici su OSX mentre a sentire cdimauro il bisione è onnipotente :asd:

-Slash
19-04-2008, 00:34
nonostante tutti in pratica su questo forum elogino java e similari io ho sempre trovato i programmi java di una pesantezza esasperante. magari saro io sfigato ma non ho mai trovato un programma java decente che funzionasse sul mio computer senza succhiare una quantità indescrivibile di memoria. e non mi dite che ormai il sistema medio ha 4gb di memoria perchè quello è il sistema medio nerd :rolleyes:

se poi leggo che i giochi li stanno scrivendo il java allora inizio a capire perchè c'è bisogno di cambiare computer ogni anno :rolleyes:

cdimauro
19-04-2008, 05:06
http://www.pygame.org/news.html

http://civilization4.net/files/modding/PythonAPI/

Python è onnipotente. :O :asd:

cionci
19-04-2008, 12:47
Esiste qualche altro linguaggio per fare engine 3D?
Tutto sta nello scegliere il linguaggio giusto per il progetto giusto. Allo stato attuale qualsiasi linguaggio che ha un wrapping per OpenGL o Direct3D ti permette di scrivere un motore grafico 3D. La differenza fra la scelta di un linguaggio e di un altro sta appunto nella produttività e nelle prestazioni. Se non si cercano prestazioni è ovvio che vada bene il linguaggio che ti offre la maggiore produttività.
Attualmente imho la maggiore produttività te la offre Java, che ti permette anche di creare un motore 3D portabile con Java3D.
Se invece vuoi scrivere applicazioni Direct3D (quindi non portabile) la scelta cade su C#.

MasterDany
19-04-2008, 13:38
Tutto sta nello scegliere il linguaggio giusto per il progetto giusto. Allo stato attuale qualsiasi linguaggio che ha un wrapping per OpenGL o Direct3D ti permette di scrivere un motore grafico 3D. La differenza fra la scelta di un linguaggio e di un altro sta appunto nella produttività e nelle prestazioni. Se non si cercano prestazioni è ovvio che vada bene il linguaggio che ti offre la maggiore produttività.
Attualmente imho la maggiore produttività te la offre Java, che ti permette anche di creare un motore 3D portabile con Java3D.
Se invece vuoi scrivere applicazioni Direct3D (quindi non portabile) la scelta cade su C#.

però JAVA può essere usato solo per giochi piattaforma computer o no?

VICIUS
19-04-2008, 13:51
però JAVA può essere usato solo per giochi piattaforma computer o no?
Java è limitato dalla presenza della jvm ma questo non significa che possa funzionare solo su pc. La maggior parte dei cellulari moderni ha una sua jvm che puoi usare, ma anche lettori blu-ray come i sony possono leggere ed eseguire codice java per creare menu interattivi con giochi.

MasterDany
19-04-2008, 13:53
Java è limitato dalla presenza della jvm ma questo non significa che possa funzionare solo su pc. La maggior parte dei cellulari moderni ha una sua jvm che puoi usare, ma anche lettori blu-ray come i sony possono leggere ed eseguire codice java per creare menu interattivi con giochi.
ciò significa che se voglio realizzare un gioco per PS3 con JAVA ci posso riuscire?

P.SHo parlato sempre di me ...ma non è che voglio creare un videogame da solo.:)

MasterDany
19-04-2008, 14:06
e di F# che mi dite?

VICIUS
19-04-2008, 14:09
ciò significa che se voglio realizzare un gioco per PS3 con JAVA ci posso riuscire?

P.SHo parlato sempre di me ...ma non è che voglio creare un videogame da solo.:)
Creare dischi bd-j non è di certo il modo più pratico per distrbuire giochi sulla ps3. Visto che si tratta di un computer ppc puoi installarci sopra una distribuzione linux come yellowdog ed usare c++ e opengl. Per Java non penso ci sia una jvm per ppc in questo momento quindi dovresti aspettare icedtea.

MasterDany
19-04-2008, 14:18
Ho sentito parlare qui di LUA.Dal sito ufficiale:

Lua has been used to extend programs written not only in C and C++, but also in Java, C#, Smalltalk, Fortran, Ada, and even in other scripting languages, such as Perl and Ruby.

Cioè signicia che io posso scrivere un engnie C++ usando per Lua

DanieleC88
19-04-2008, 14:51
Lua è un linguaggio di scripting che io sappia, difficilmente lo puoi usare per implementare un motore 3D vero e proprio.
Comunque io ti consiglio di cominciare con un gioco 2D, perché non un side scroller in stile Super Mario? È un ottimo modo di iniziare. :)

ciao ;)

MasterDany
19-04-2008, 14:53
io ho letto ora che LUA si usa proprio per gli engine 3D.

variabilepippo
19-04-2008, 14:59
LUA si usa come linguaggio di scripting (anche) per i motori 3D, vedi a titolo di esempio Apocalyx (http://apocalyx.sourceforge.net/) sviluppato da Leonardo Boselli.

PS. Come mai questa curiosità? Prima di poter soltanto pensare di progettare un 3D engine dovrà passarne di acqua sotto i ponti... :)

MasterDany
19-04-2008, 19:36
curiosità :fagiano:
Ricapitalando:JAVA inadatto per creare giochi per consolle
Python:non l'ho ancora capito :fagiano:
Lua:Buon Linguaggio di scripting per creare engne 3D
C++: Ottimo linguaggio per creare engnie 3D
C#: Ottimo per creare engine per xbox
C#2/JAVA2:Migliori linguaggi per la creazione di engine 2D


Dico bene?

F#?

cdimauro
19-04-2008, 21:16
Python e LUA sono entrambi usati come linguaggi di scripting per i giochi (prima t'avevo fornito il link a una pagina che mostrava le API Python di Civilization 4).

Python puoi usarlo anche per realizzare velocemente giochi 2D (t'ho fornito prima un link allo scopo).

F# è un linguaggio molto potente, ed essendo basato su .NET è in grado di fare potenzialmente le stesse cose di C#.

DanieleC88
19-04-2008, 21:20
e di F# che mi dite?
È di un tono sopra il Mi.

MasterDany
19-04-2008, 21:23
be intanto grazie a tutti. :cool: Siccome ho inziato con JAVA (ottimo linguaggio)mi sono preso alcuni libri molto interessanti su come fare engine 2D e 3D con JAVA.Lo so JAVA non può essere sfruttao però è un ottimo linguaggio non trovate?

MasterDany
19-04-2008, 21:26
http://www.jython.org/Project/index.html

khelidan1980
19-04-2008, 21:50
http://www.jython.org/Project/index.html

ma questo non centra niente con il tuo scopo,imparare java....e secondo me dovresti lasciar da parte gli engine 3d per ora! ;)

MasterDany
19-04-2008, 21:51
Infatti non li ho mai presi in considerazione gli engine3D :) Era solo una curiosità adesso mi sto impegnado sugli engine 2D intanto. :D

khelidan1980
19-04-2008, 21:54
Infatti non li ho mai presi in considerazione gli engine3D :) Era solo una curiosità adesso mi sto impegnado sugli engine 2D intanto. :D

impegnati a impare il linguaggio,prenditi libri,quelli su java non su gli engine,li studi e fai tutti gli esercizi

MasterDany
19-04-2008, 21:57
quello che sto facendo :)