PDA

View Full Version : Il vostro linguaggio di programmazione fa schifo, qualunque esso sia


Pagine : 1 [2]

banryu79
23-10-2008, 12:05
A proposito di sucks vari: manca VB :sofico:

71104
23-10-2008, 13:24
A proposito di sucks vari: manca VB :sofico: troppe cose mancano a quella pagina: VB6 ci sta che è una meraviglia. io però purtroppo meglio di così non posso fare; me ne intendo solo di C, C++ e Java e ho fatto del mio meglio; sto approfondendo molto C#, ma a parte il goto non riesco a trovare altri sucks; C# e .NET mi piacciono troppo :D

cdimauro sta a Python come io sto a C# e .NET :sofico:

ozeta
23-10-2008, 13:39
* No way to modularize or programmatically generate lengths. Can't say:

{ width:50% - 2px; }



questo si risolve con un padding o un margin, al limite :sofico:

71104
23-10-2008, 13:42
* No way to modularize or programmatically generate lengths. Can't say:

{ width:50% - 2px; }



questo si risolve con un padding o un margin, al limite :sofico: non sono esperto di CSS ma credo che si possano trovare millemila altri esempi privi di soluzione. in sostanza mi pare di capire che non puoi metterci espressioni e formule matematiche, tutto qui :)

eve
23-10-2008, 13:54
che figo questo 3d (e anche il sito YouLanguageSucks):D

DanieleC88
23-10-2008, 14:00
A proposito di sucks vari: manca VB :sofico:
VB è implicito. :asd:
non sono esperto di CSS ma credo che si possano trovare millemila altri esempi privi di soluzione. in sostanza mi pare di capire che non puoi metterci espressioni e formule matematiche, tutto qui :)
Be', sì, Antares88 può confermare; il 99% delle cose le risolve con dei "trucchetti", ma spesso diventa un po' incasinato.

astorcas
03-11-2008, 16:41
VB è implicito. :asd:

Be', sì, Antares88 può confermare; il 99% delle cose le risolve con dei "trucchetti", ma spesso diventa un po' incasinato.

Già è che angoscia sapere che ogni volta il trucchetto dovrà essere diverso...

Fortunatamente col lavoro che faccio mi sono defilato dal PHP, ma il css... :muro:

(tanto per dire una cavolata e uppare.... :asd:)

Volevo parlare di una cosa che a me sconvolge un pochetto, ma magari a chiunque altro va bene. Il fatto che l'operatore == per le stringhe sia stato sovraccaricato (C#) per me è un sucks :fagiano:

VICIUS
03-11-2008, 16:48
Fortunatamente col lavoro che faccio mi sono defilato dal PHP, ma il css... :muro:
L'unico problema di css si chiama internet explorer. :muro:

Kralizek
03-11-2008, 20:09
troppe cose mancano a quella pagina: VB6 ci sta che è una meraviglia. io però purtroppo meglio di così non posso fare; me ne intendo solo di C, C++ e Java e ho fatto del mio meglio; sto approfondendo molto C#, ma a parte il goto non riesco a trovare altri sucks; C# e .NET mi piacciono troppo :D

cdimauro sta a Python come io sto a C# e .NET :sofico:


io ho sempre "giocato" con il vb.net, ma da quando lavoro sto fisso su c#. Posso solo dire che la tastiera svedese è 10.000 volte più comoda per programmare in c# rispetto all'italiana.

per il resto non capisco perchè c# non abbia i parametri opzionali nelle funzioni (che .net supporta) e trovo ostico ricordare il significato delle 10 parole chiavi a seconda del contesto (molto meglio mustinherit, overrides, overridable, mustoverride e così via)

eve
03-11-2008, 20:43
....
per il resto non capisco perchè c# non abbia i parametri opzionali nelle funzioni ....

cosa intendi? fai un esempio...

dupa
03-11-2008, 20:47
cosa intendi? fai un esempio...

penso che con parametri opzionali intenda che se un metodo ha 5 parametri, magari i primi 3 sono obbligatori, gli ultimi due opzionali, e non li passi, assumono valore di default

eve
03-11-2008, 20:49
penso che con parametri opzionali intenda che se un metodo ha 5 parametri, magari i primi 3 sono obbligatori, gli ultimi due opzionali, e non li passi, assumono valore di default

se intende questo, rispondo già che è una cavolata assurda!
Esiste l'overload delle funzioni che serve proprio per questo.

Kralizek
03-11-2008, 21:15
se intende questo, rispondo già che è una cavolata assurda!
Esiste l'overload delle funzioni che serve proprio per questo.

in vb.net esiste l'overloading ED i parametri opzionali... perchè devo scrivere due procedure di cui una chiama l'altra e gli passa il parametro di default?

Kralizek
03-11-2008, 21:19
in vb.net esiste l'overloading ED i parametri opzionali... perchè devo scrivere due procedure di cui una chiama l'altra e gli passa il parametro di default?

e aggiungo un esempio:

VB.NET

Public Sub Routine1 (ByVal Param1 As Integer, ByVal Param2 As String, Optional ByVal Param3 As Double = 0.00)

...

End Sub

C#


public void Routine1 (int Param1, string Param2, double Param3)
{
...
}

public void Routine1 (int Param1, string Param2)
{
Routine1 ( Param1, Param2, 0.00);
}

eve
03-11-2008, 21:26
in vb.net esiste l'overloading ED i parametri opzionali... perchè devo scrivere due procedure di cui una chiama l'altra e gli passa il parametro di default?

perchè il codice è più leggibile e si fanno meno errori.
cmq, in vb.net esiste forse per un semplice discorso di combatibilità con il vb altrimenti lo avrebbero inserito anche nel c#.

ho trovato per caso questo articolo su msdn. Dicono esattamente quello che ho detto anch'io e cioè che esiste l'overloading delle funzioni che fà la stessa cosa dei parametri opzionali.
http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85556.aspx

Kralizek
03-11-2008, 21:33
perchè il codice è più leggibile e si fanno meno errori.
cmq, in vb.net esiste forse per un semplice discorso di combatibilità con il vb altrimenti lo avrebbero inserito anche nel c#.

ho trovato per caso questo articolo su msdn. Dicono esattamente quello che ho detto anch'io e cioè che esiste l'overloading delle funzioni che fà la stessa cosa dei parametri opzionali.
http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85556.aspx

premesso che credo che alla fine vbc crei cmq degli overload, cambia la quantità codice scritta. E mi sembra strano che, per una volta, tra vb.net e c#, sia il vb.net il linguaggio meno prolisso. E, ma forse dico una cazzata, se non ricordo male anche il C++ supporta i valori di default dei parametri delle funzioni.

Sia chiaro, non è nulla senza cui non si viva, semplicemente una comodità del VB che in C# farebbe comodo.

Ah... e sempre parlando di cose perse dal C++, che fine hanno fatto le variabili locali statiche? o,O

cdimauro
03-11-2008, 22:00
per il resto non capisco perchè c# non abbia i parametri opzionali nelle funzioni (che .net supporta)
Arriveranno con C# 4.0.
e trovo ostico ricordare il significato delle 10 parole chiavi a seconda del contesto (molto meglio mustinherit, overrides, overridable, mustoverride e così via)
Concordo.

DanieleC88
11-11-2008, 00:10
Scopro stasera che in Java questo codice è legale:
String msg = "Hello, World!";

System.out.println(msg);

Ma che lo è perfettamente anche questo:
String $m$s$g$ = "Hello, World!";

System.out.println($m$s$g$);

Sucks. :asd:

71104
11-11-2008, 00:24
il primo codice non vedo cos'abbia di strano... per il secondo, in effetti è divertente il fatto che il dollaro sia un carattere valido per gli identificatori :D
probabilmente è perché tramite il dollaro vengono creati identificatori particolari come quelli delle inner classes; chissà se è anche possibile mettere in crisi il compilatore dando ad una classe lo stesso nome di una inner class concatenato tramite $ alla outer class.

DanieleC88
11-11-2008, 00:41
Il primo codice non ha niente di strano, era solo per fare un esempio. :D

Comunque sì, da quando ho "intravisto" mi sembra che il dollaro venga utilizzato internamente per del codice autogenerato, ed infatti il suo utilizzo è fortemente sconsigliato all'utente finale in ogni caso. Però è sintatticamente valido, quindi per me è un sucks. :asd:

banryu79
11-11-2008, 09:15
Comunque sì, da quando ho "intravisto" mi sembra che il dollaro venga utilizzato internamente per del codice autogenerato, ed infatti il suo utilizzo è fortemente sconsigliato all'utente finale in ogni caso. Però è sintatticamente valido, quindi per me è un sucks. :asd:
Come avete già detto serve a Java per "nominare" le anonymous inner classes, quindi sarà accettato come carattere valido negli identificatori.
A onor del vero però non ho mai visto (ancora) nessuno includere negli identificatori il carattere di dollaro...


chissà se è anche possibile mettere in crisi il compilatore dando ad una classe lo stesso nome di una inner class concatenato tramite $ alla outer class.
Te sei diabolico, eh :asd:

@EDIT:
Ho appena verificato: non si fa fregare. Ho provato con questo codice:

public class Main
{
Main()
{
System.out.println("classe Main costruita");
}

public static void main(String[] argv)
{
System.out.println("static entry point");

Thread anonymous = new Thread()
{
public void run()
{
int num = 10;
while (num-- > 0)
{
System.out.println("anonymus thread class executing");
}
}
};
anonymous.start();
}
}


a cui ho poi aggiunto un pezzo:

public class Main
{
Main()
{
System.out.println("classe Main costruita");
}

public static void main(String[] argv)
{
System.out.println("static entry point");

Thread anonymous = new Thread()
{
public void run()
{
int num = 10;
while (num-- > 0)
{
System.out.println("anonymus thread class executing");
}
}
};
anonymous.start();

Main$1 hack = new Main$1();
hack.start();
}
}


class Main$1
{
String message;

public Main$1()
{
message = "Hacking real Main$1 inner class of Main.class";
}

public void start()
{
System.out.println(message);
}
}

E il compilatore non fa una grinza. Nomina con l'identificatore "Main$1" la classe anonima interna a Main e con l'identificatore "Main$2" la classe che nel codice si chiama Main$1 :p

mik93
18-01-2009, 13:32
riuppo questo topic, spero che non vi arrabbiate!

mi rivolgo sopratutto a cdimauro

lui mi aveva gia consigliato di imparare python 2, io però ho preferito aspettare l'uscita del 3!

vorrei cheidervi cosa ne pensate (voi esperti) di questa nuova versione?

inoltre per le mie esigenze (imparare un linguaggio di programmazzione che possa permettermi di creare qualunque piccolo programma, sia per windows, per linux e per apple mi consigliate il python?

grazie infinite

cdimauro
18-01-2009, 13:49
Ovvio che sì. :)

Su Python 3.0, c'è un thread in cui ne abbiamo parlato. Lo trovi qui (http://www.hwupgrade.it/forum/showthread.php?t=1878554&highlight=python). ;)

~FullSyst3m~
18-01-2009, 14:22
Ovvio che sì. :)

Su Python 3.0, c'è un thread in cui ne abbiamo parlato. Lo trovi qui (http://www.hwupgrade.it/forum/showthread.php?t=1878554&highlight=python). ;)

La diffusione del verbo e la conversione di altri fedeli continua inesorabile[cit.Bibbia di qualcuno, forse di cdimauro:asd:]

mik93
18-01-2009, 14:31
grazie mille ... sei il migliore :)

~FullSyst3m~
18-01-2009, 14:40
grazie mille ... sei il migliore :)

Ne hai contagiato un altro cdimauro :asd:

cdimauro
18-01-2009, 16:41
grazie mille ... sei il migliore :)
http://www.starwarsautographcollecting.com/Autographs/Spaceballs/Yogurt.jpg
"Sono solo uno yogurt normale" - Grande Yogurt

:p

marko.fatto
03-03-2009, 20:03
uppino..
chi aggiorna la parte su ruby? le versioni raccomandate per windows ora sono 3 :asd:

71104
04-04-2009, 17:08
due piccoli aggiornamenti:

aggiunte due voci su Java (cose da pazzi...)
introdotto uno stub per Perl usando una famosa citazione :p

PS: quand'é che mettiamo sti sucks sul C#? :O

cdimauro
04-04-2009, 19:55
Fino a qualche giorno fa non mi dava la pagina (diceva che c'erano problemi), e m'ero un po' depresso. Quindi s'è ripresa. Ottimo. :D

marko.fatto
28-04-2009, 20:36
uppino..
chi aggiorna la parte su ruby? le versioni raccomandate per windows ora sono 3 :asd:

upp, nessuno ha voglia di cambiarlo? :stordita:

cdimauro
28-04-2009, 20:45
E va bene: vuol dire che mi sacrifico io. :asd:

Prima però vorrei sapere come mai ci sono 3 versioni adesso.

marko.fatto
29-04-2009, 00:32
la terza si è aggiunta lasciando le due precedenti perchè ci sono delle incompatibilità con alcune librerie..

VICIUS
29-04-2009, 00:47
Leggendo la parte di Ruby mi viene un po' da ridere. Prima si lamenta che il nome di una funzione non gli piace. Continua dicendo che Unicode doveva esserci dalla 1.0, dice che @ e @@ non gli piacciono e si lamenta più volte della documentazione. Per finire non gli va a genio come gli sviluppatori decidono quali modifiche inserire nella versione stabile e in quella di sviluppo.

cdimauro
29-04-2009, 06:06
la terza si è aggiunta lasciando le due precedenti perchè ci sono delle incompatibilità con alcune librerie..
Io vedo ancora soltanto due versioni: la 1.8.7 e la 1.8.6. :confused:
Leggendo la parte di Ruby mi viene un po' da ridere. Prima si lamenta che il nome di una funzione non gli piace.
Ti pare normale normale usare "downcase" anziché "lowercase"? Soltanto un giapponese poteva avere un'idea così contorta. :asd:
Continua dicendo che Unicode doveva esserci dalla 1.0,
Su questo hai ragione: anche a me pare una cazzata.
dice che @ e @@ non gli piacciono
Questa è roba mia! Li odio!!! :asd:
e si lamenta più volte della documentazione.
Idem, ma qui non è una questione di gusti:

The documentation is not versioned.

Questo è vero (ed è sempre roba mia :asd:). Come fai a tenere conto delle differenze fra una versione e un'altra, quando hai soltanto l'ultima versione documentata?

E' un problema serio. Io, ad esempio, a lavoro uso la 2.5, a casa smanetto con la 2.6, e prima poi metterò mano alla 3.0: di tutte queste ho sempre la documentazione separata a disposizione, e non commetto errori nell'usare funzionalità, moduli, ecc. di una versione anziché di quella che uso.

Per giunta non è nemmeno aggiornata sempre all'ultima versione.
Per finire non gli va a genio come gli sviluppatori decidono quali modifiche inserire nella versione stabile e in quella di sviluppo.
Sempre roba mia. :asd:

Gli esperimenti a mio avviso è meglio farli nella versione successiva, non in quella rilasciata in corso d'opera, perché è facile che creino problemi di incompatibilità.

A maggior ragione con una documentazione non versionata e non aggiornata, che può anche farti impazzire cercando di capire perché il tuo codice non ti funziona con l'ultima versione.

VICIUS
29-04-2009, 08:19
Ti pare normale normale usare "downcase" anziché "lowercase"? Soltanto un giapponese poteva avere un'idea così contorta. :asd:
Non è normale ok ma dire che il linguaggio fa schifo perché una funzione di una classe ha un nome che non ti piace è stupido. Se lo trovi così assolutamente scandaloso apri String e usi alias per cambiare nome. Problema risolto. :)

Questa è roba mia! Li odio!!! :asd:
Questa è una critica soggettiva. A questo punto potremmo aggiungere che lisp fa schifo perché ci sono troppe parentesi tonde.

Idem, ma qui non è una questione di gusti:

The documentation is not versioned.

Questo è vero (ed è sempre roba mia :asd:). Come fai a tenere conto delle differenze fra una versione e un'altra, quando hai soltanto l'ultima versione documentata?

E' un problema serio. Io, ad esempio, a lavoro uso la 2.5, a casa smanetto con la 2.6, e prima poi metterò mano alla 3.0: di tutte queste ho sempre la documentazione separata a disposizione, e non commetto errori nell'usare funzionalità, moduli, ecc. di una versione anziché di quella che uso.

Per giunta non è nemmeno aggiornata sempre all'ultima versione.
Ruby-doc è poco aggiornato te lo concedo. Il problema vero è comunque che il sito non funziona praticamente mai e quando è su ci mette una vita a caricare. :muro: Quella installata sul tuo sistema e consultabile tramite ri però è sempre aggiornata alla versione che hai installato sul sistema. Viene generata da rdoc durante la compilazione ed è presa dai sorgenti. Ok a volte ci sono errori e alcune cose non sono aggiornate ma questo capita in tutti i linguaggi.

Sempre roba mia. :asd:

Gli esperimenti a mio avviso è meglio farli nella versione successiva, non in quella rilasciata in corso d'opera, perché è facile che creino problemi di incompatibilità.
Ma non puoi dire che il linguaggio fa schifo perché non ti piace come lavorano quelli che lo hanno scritto. Sarebbe come dire che la nuova 500 fa schifo perché chi la progettava lo faceva completamente nudo.

A maggior ragione con una documentazione non versionata e non aggiornata, che può anche farti impazzire cercando di capire perché il tuo codice non ti funziona con l'ultima versione.
Non basta guardare nel changelog per vedere cosa è cambiato nell'ultima versione invece di perdere ore nella documentazione? Se cambiano downcase in lowercase e il tuo codice non compila più sono sicuro che un "to please a die hard python fan" ce lo mettono di sicuro :p

cdimauro
29-04-2009, 09:02
Non è normale ok ma dire che il linguaggio fa schifo perché una funzione di una classe ha un nome che non ti piace è stupido. Se lo trovi così assolutamente scandaloso apri String e usi alias per cambiare nome. Problema risolto. :)

Questa è una critica soggettiva. A questo punto potremmo aggiungere che lisp fa schifo perché ci sono troppe parentesi tonde.
In effetti manca una sezione per il lisp: mi sa che è ora di aprirla. :asd:

A parte gli scherzi, Mirco, quella pagina è più che altro goliardica. La sezione Python è abbastanza scarna: perché non la riempi un po'? Sono serio! :)
Ruby-doc è poco aggiornato te lo concedo. Il problema vero è comunque che il sito non funziona praticamente mai e quando è su ci mette una vita a caricare. :muro: Quella installata sul tuo sistema e consultabile tramite ri però è sempre aggiornata alla versione che hai installato sul sistema. Viene generata da rdoc durante la compilazione ed è presa dai sorgenti.
Quella magari sì, ma non è sempre così. Ad esempio in quel sito è sottolineato come la documentazione delle "C API" siano ancora ferme alla 1.8.4.
Ok a volte ci sono errori e alcune cose non sono aggiornate ma questo capita in tutti i linguaggi.
Certo.
Ma non puoi dire che il linguaggio fa schifo perché non ti piace come lavorano quelli che lo hanno scritto. Sarebbe come dire che la nuova 500 fa schifo perché chi la progettava lo faceva completamente nudo.
Non è esattamente così, dai. Un programmatore ha bisogno di stabilità delle API e/o del linguaggio per lavorare: non può mettersi dietro a cambiamenti in corso d'opera.

Quando lavoro con Python 2.5 so che al più verranno rilasciati bug fix, e questo se e solo se non comportano problemi di incompatibilità.

Se voglio l'ultima "figata" aggiunta al linguaggio, mi scarico la 2.6 o, meglio ancora, la 3.0. E questo sapendo che qualche problema di incompatibilità ci potrebbe essere (e con la 3.0 è sicuro).

Non esistono versioni "instabili" lasciati alla gente, o aggiunte anche rilevanti in una minor release.
Non basta guardare nel changelog per vedere cosa è cambiato nell'ultima versione invece di perdere ore nella documentazione?
Lo faccio quando passo a una major release. :)
Se cambiano downcase in lowercase e il tuo codice non compila più sono sicuro che un "to please a die hard python fan" ce lo mettono di sicuro :p
E questo l'hanno fatto con la 3.0. Ad esempio hanno eliminato l'operatore <> lasciando soltanto !=: le mie applicazioni non funzionerebbero sicuramente (causa mia indole pascaliana :D).

Però so che tutti questi profondi cambiamenti che minano la compatibilità li trovo nella 3.0, che oltre a portare miglioramenti al linguaggio, è stata realizzata per fare un po' di pulizia e renderlo maggiormente "pythonic".

Mi sembra un po' diversa la situazione. Come programmatore mi sento maggiormente tutelato da questa politica. :)

Poi, ripeto, quella è una paginetta che è stata messa sù più per spirito goliardico. :p

arfish
29-04-2009, 14:21
Ok giusto per spirito goliardico vi faccio fare 2 risate... avete mai sentito parlare di RPG??? un linguaggio vecchio come il cucco sviluppato dall'IBM x as/400 et similari??? Se la risposta è no beati voi, altrimenti capirete le pene di chi ci sviluppa.
Tanto per iniziare il linguaggio (RPG 3) non ammette identazione le variabili sono max di 6 char, si accede alle tabelle di DB non tramite SQL query ecc... troppo semplice: si punta un record tramite una vista logica, se tra quelle già presenti ne esiste una che ti torna utile bene, altrimenti o te la crei o ti scorri tutto il file in cerca di quello che ti serve(di solito te la crei, o cerchi di arrivare ad usarne una già presente). Giusto per finire Dulcis in fundo tutte le variabili hanno visibilità globale e non esiste la ricorsione.

_Claudio
29-04-2009, 15:15
Ok giusto per spirito goliardico vi faccio fare 2 risate... avete mai sentito parlare di RPG??? un linguaggio vecchio come il cucco sviluppato dall'IBM x as/400 et similari??? Se la risposta è no beati voi, altrimenti capirete le pene di chi ci sviluppa.
Tanto per iniziare il linguaggio (RPG 3) non ammette identazione le variabili sono max di 6 char, si accede alle tabelle di DB non tramite SQL query ecc... troppo semplice: si punta un record tramite una vista logica, se tra quelle già presenti ne esiste una che ti torna utile bene, altrimenti o te la crei o ti scorri tutto il file in cerca di quello che ti serve(di solito te la crei, o cerchi di arrivare ad usarne una già presente). Giusto per finire Dulcis in fundo tutte le variabili hanno visibilità globale e non esiste la ricorsione.

Una sola parola... stupendo :D :D

arfish
29-04-2009, 15:59
una favola non ti dico, è tipo preistoria dell'informatica (infatti non si usa la tastiera ma la clava :D :D almeno scarichi i nervi:D :D ), scherzi a parte credo sia nato nello stesso periodo del fortran e del cobol, infatti risente del peso dell'età...

cdimauro
29-04-2009, 17:25
:eek: Ma perché non metti questa perla nella paginetta oggetto di questo thread? :D

marko.fatto
29-04-2009, 19:22
Io vedo ancora soltanto due versioni: la 1.8.7 e la 1.8.6. :confused:

* Ruby 1.8.6 One-Click Installer (md5: 69945dfae60224cc64139c91e000590e) Stable version (recommended)
* Ruby 1.8.7-p72 Binary (md5: d4b04ba03a76dc70120fe96ffa22e5df) Stable version (recommended)
* Ruby 1.9.1-p0 Binary (md5: 921db53c709ce20106610f7d229e24e1) Stable version (recommended)

http://www.ruby-lang.org/en/downloads/
la versione per windows :)

VICIUS
29-04-2009, 19:26
A parte gli scherzi, Mirco, quella pagina è più che altro goliardica. La sezione Python è abbastanza scarna: perché non la riempi un po'? Sono serio! :)
Non conosco abbastanza bene python però potrei dirne due o tre su Ruby. :D

Quella magari sì, ma non è sempre così. Ad esempio in quel sito è sottolineato come la documentazione delle "C API" siano ancora ferme alla 1.8.4.
Anche qui basta lanciare doxygen nella root dei file include di ruby e ottieni quelli aggiornati alla tua versione. Non che ci sia molto da documentare.

Non è esattamente così, dai. Un programmatore ha bisogno di stabilità delle API e/o del linguaggio per lavorare: non può mettersi dietro a cambiamenti in corso d'opera.

Quando lavoro con Python 2.5 so che al più verranno rilasciati bug fix, e questo se e solo se non comportano problemi di incompatibilità.

Se voglio l'ultima "figata" aggiunta al linguaggio, mi scarico la 2.6 o, meglio ancora, la 3.0. E questo sapendo che qualche problema di incompatibilità ci potrebbe essere (e con la 3.0 è sicuro).

Non esistono versioni "instabili" lasciati alla gente, o aggiunte anche rilevanti in una minor release.

Lo faccio quando passo a una major release. :)

E questo l'hanno fatto con la 3.0. Ad esempio hanno eliminato l'operatore <> lasciando soltanto !=: le mie applicazioni non funzionerebbero sicuramente (causa mia indole pascaliana :D).

Però so che tutti questi profondi cambiamenti che minano la compatibilità li trovo nella 3.0, che oltre a portare miglioramenti al linguaggio, è stata realizzata per fare un po' di pulizia e renderlo maggiormente "pythonic".

Mi sembra un po' diversa la situazione. Come programmatore mi sento maggiormente tutelato da questa politica. :)
Ruby non lo uso per lavoro quindi non ho mai sentito la necessità di stabilità. In effetti se ms mi facesse così con .net e c# la penserei come te anche io, anzi, organizzerei una spedizione punitiva in quel di Redmond. Continuo però a pensare che sia un fatto che non vada inserito in una pagina che parla del linguaggio.


Poi, ripeto, quella è una paginetta che è stata messa sù più per spirito goliardico. :p
Ok. Mi calmo un pochino e vedo di inserire qualcosa di divertente appena ho tempo :D

cdimauro
29-04-2009, 22:05
http://www.ruby-lang.org/en/downloads/
la versione per windows :)
Ho capito. Beh, la 1.8.x e la 1.9.x sono major version, per cui ci può benissimo stare che siano disponibili entrambe per il download, proprio per quanto ho scritto prima.

Il mio discorso verteva sulle minor version. :)
Non conosco abbastanza bene python però potrei dirne due o tre su Ruby. :D
Allora vai, che non vedo l'ora. :D
Anche qui basta lanciare doxygen nella root dei file include di ruby e ottieni quelli aggiornati alla tua versione. Non che ci sia molto da documentare.
OK, però non mi sembra molto pratico. Io vado sempre sul sito di Python quando mi serve spulciare la documentazione, su quello di PHP (quando devo riempire la pagina di YourLanguageSucks :asd:), di Ruby, Perl (AAARRRGGGGHHH :cry:), ecc. proprio perché mi aspetto di trovare le informazioni più aggiornate e corrette.

Mia abitudine, comunque.
Ruby non lo uso per lavoro quindi non ho mai sentito la necessità di stabilità. In effetti se ms mi facesse così con .net e c# la penserei come te anche io, anzi, organizzerei una spedizione punitiva in quel di Redmond.
D'accordissimo. :D
Continuo però a pensare che sia un fatto che non vada inserito in una pagina che parla del linguaggio.
OK
Ok. Mi calmo un pochino e vedo di inserire qualcosa di divertente appena ho tempo :D
:sbav: Prima o poi metterò anch'io mano alla sezione Python. Al momento sono troppo incasinato con la conferenza, magari lo faccio subito dopo, per sfogarmi. :asd:

Hiskrtapps
30-04-2009, 11:26
ops

CozzaAmara
01-05-2009, 10:33
Non mi toccate Ruby o vi faccio spezzare i pollici. :O

- metodo downcase? In effetti quando ho letto il nome mi è venuto un dubbio, ma che cazz...? Ma in realtà è proprio l'ultimo dei problemi.
Basta crearne un alias "lowercase" e tutti sono felici e contenti.
Un pò come in PHP esistono le funzioni delete/unlink.

- @/@@: in effetti anche a me all'inizio non piaceva questa simbologia ma dopo un pò ci fai l'abitudine senza troppa difficoltà.

- Ruby-doc: strano, a me il sito si apre senza problemi, certo è un pò lento ma nulla di inusabile.
Per la documentazione in generale è anche vero che è un pò scarna ma bisogna dare atto che Ruby non ha ancora una diffusione pari a: Java, C#, Python ecc. (A meno che non si viva in Giappone)
Tuttavia la Community è in crescita.

- Classi mai chiuse: qui mi è venuta una sincope, poi ho capito che, facendo le cose fatte bene, è più una risorsa che un pericolo.
"Da un grande potere deriva una grande responsabilità" (cit.) :stordita:

DanieleC88
08-05-2009, 12:58
Riporto giusto un attimo up la discussione. Mi sono trovato in questi tempi a dover lavorare su un sito in PHP.

Non c'è molto da dire.

PHP fa schifo. :muro:

:incazzed: MUOOORI PHP MUOOOORI! :incazzed:

ndakota
08-05-2009, 13:02
Riporto giusto un attimo up la discussione. Mi sono trovato in questi tempi a dover lavorare su un sito in PHP.

Non c'è molto da dire.

PHP fa schifo. :muro:

:incazzed: MUOOORI PHP MUOOOORI! :incazzed:

strano dalla discussione avuta con te ieri sera non l'avrei mai detto :O

_Claudio
08-05-2009, 13:17
In effetti non vedo perchè php sia così diffuso quando jsp/servlet e javabeans su pattern mvc sono estremamente più potenti.

Se fate una ricerca su servizi hosting quasi tutti supportano php, quei pochi che supportano jsp costano mediamente un 30-50% in più...

Così come PostgreSQL vs MySQL, mooooolto più performante ed essenziale il primo...

cionci
08-05-2009, 13:28
E' semplice...dedicare un server a JSP e javabeans è molto più costoso perché necessitano molte più risorse di sistema.

DanieleC88
08-05-2009, 13:30
In effetti non vedo perchè php sia così diffuso quando jsp/servlet e javabeans su pattern mvc sono estremamente più potenti.

Se fate una ricerca su servizi hosting quasi tutti supportano php, quei pochi che supportano jsp costano mediamente un 30-50% in più...

Così come PostgreSQL vs MySQL, mooooolto più performante ed essenziale il primo...
Be', c'è da dire che PHP è nato come "Personal Home Page", non "PHP Hypertext Processor" quale è oggi. Quindi un po' capisco il perché sia comodissimo per piccoli script e sia però cresciuto senza un vero design dietro (mai provato a fare OOP in PHP?). Il suo vantaggio, purtroppo, è che è ovunque e ci sono millemila estensioni...

Fosse per me andrei dritto su Python o Ruby, o anche Java se mi danno Tomcat.

~FullSyst3m~
08-05-2009, 13:33
Be', c'è da dire che PHP è nato come "Personal Home Page", non "PHP Hypertext Processor" quale è oggi. Quindi un po' capisco il perché sia comodissimo per piccoli script e sia però cresciuto senza un vero design dietro (mai provato a fare OOP in PHP?). Il suo vantaggio, purtroppo, è che è ovunque e ci sono millemila estensioni...

Fosse per me andrei dritto su Python o Ruby, o anche Java se mi danno Tomcat.

Python sta aumentando notevolmente la sua diffusione in ambito web. Credo che il 90% del merito, oltre alla sintassi pulita e semplice, sia grazie a Django.

ndakota
08-05-2009, 13:34
E' semplice...dedicare un server a JSP e javabeans è molto più costoso perché necessitano molte più risorse di sistema.

e per ruby invece? qual è il motivo? :mad:

DanieleC88
08-05-2009, 13:38
E' semplice...dedicare un server a JSP e javabeans è molto più costoso perché necessitano molte più risorse di sistema.
Hmm in realtà non è una questione così banale... Ovviamente l'interprete è più pesante, ma il linguaggio non è detto che sia più veloce. Anzi, ho visto dei benchmark secondo cui PHP è più lento di Java... :D

Anzi, mi sono trovato proprio per questo lavoro a sviluppare un programmino in Java per gestire un grosso file Excel ed ora ad importarlo in remoto via PHP. Con Java tutto tranquillo, anche sul mio antico PC datato 2000. Con PHP mi risparmio di dirverlo. Ho ancora troppi '$' che mi passano davanti agli occhi. :D

DanieleC88
08-05-2009, 13:40
Python sta aumentando notevolmente la sua diffusione in ambito web. Credo che il 90% del merito, oltre alla sintassi pulita e semplice, sia grazie a Django.
Sì, d'accordo, però purtroppo PHP la fa ancora troppo da padrone. Python non te lo dà nessuno già preconfezionato: prova a dire ad un hosting "voglio Python!", quelli ti sputano in un occhio... :D
Se gli dici "fammi un'installazione LAMP" quelli te la fanno senza batter ciglio.

:cry:

~FullSyst3m~
08-05-2009, 13:42
Sì, d'accordo, però purtroppo PHP la fa ancora troppo da padrone. Python non te lo dà nessuno già preconfezionato: prova a dire ad un hosting "voglio Python!", quelli ti sputano in un occhio... :D
Se gli dici "fammi un'installazione LAMP" quelli te la fanno senza batter ciglio.

:cry:

Ovviamente, questo era sottointeso. Ma se un linguaggio continua ad espandersi, allora gli hosting non credo possano chiudere gli occhi per sempre.

shinya
08-05-2009, 14:03
http://prgmr.com/xen/

$6 al mese e ci hostate quello che vi pare. E poi avete una macchina virtuale, che è molto più "fuck yeah!".

~FullSyst3m~
08-05-2009, 14:04
http://prgmr.com/xen/

$6 al mese e ci hostate quello che vi pare. E poi avete una macchina virtuale, che è molto più "fuck yeah!".

Interessantissimo! Mi sa che inizierò a studiare Django :D

Ma in pratica è un server virtuale? Come funziona di preciso?

kasx93
03-08-2009, 00:08
Ho trovato un interessantissimo post del mese scorso:
http://www.jdsblog.it/informatica/375/hosting-gratuito-django-e-non-solo-con-db-postgresql-e-accesso-ssh/

consiglia un hosting gratuito per django!

spero che vi sia utile!

cdimauro
03-08-2009, 07:44
Molto interessante, grazie! :)

Non soltanto per Django, quanto perché supporta Python :cool: e un engine SQL diverso da quella monnezza di MySQL. :D

P.S. Ma Alberto (71104, che ha aperto questa discussione), che fine ha fatto? Come mai trovo il suo account bannato? :sob:

~FullSyst3m~
03-08-2009, 08:34
un engine SQL diverso da quella monnezza di MySQL. :D

Perchè monnezza? :confused:

cionci
03-08-2009, 08:45
Perchè monnezza? :confused:
Perché è molto "rattoppato". Diciamo che il supporto a transazioni, trigger, integrità referenziale è stato aggiunto integrando un prodotto di terze parti (InnoDB), trovandosi a supportare modalità di locking diverse e quindi diverse tecniche di utilizzo a seconda del tipo di database.
Ad esempio il full text search (quasi un obbligo per almeno una tabella in molti siti internet) si può utilizzare solo per tabelle MyISAM (il tipo originale di tabella) e non su quelle InnoDB, peccato che le tabelle MyISAM supportano il locking solo e livelllo dell'intera tabella (si possono fare letture concorrenti, ma non scritture e letture concorrenti e scritture concorrenti) e non supportano le transazioni. Cosa assurda per un sito web o per un qualunque altro utilizzo serio.

Mattyfog
03-08-2009, 09:20
guardando la pagina direi che c# domina :yeah: :asd:

astorcas
03-08-2009, 12:31
P.S. Ma Alberto (71104, che ha aperto questa discussione), che fine ha fatto? Come mai trovo il suo account bannato? :sob:

http://www.hwupgrade.it/forum/showpost.php?p=27486377&postcount=36

malocchio
03-08-2009, 12:42
P.S. Ma Alberto (71104, che ha aperto questa discussione), che fine ha fatto? Come mai trovo il suo account bannato? :sob:

http://www.hwupgrade.it/forum/showpost.php?p=27486377&postcount=36

Non si riesce bene a capire cos'ha fatto. E immagino che non sia lecito chiedere.

Scusate l'OT

VICIUS
03-08-2009, 12:54
Non si riesce bene a capire cos'ha fatto. E immagino che non sia lecito chiedere.
Semplicemente dopo una lunga lista di ammonizioni e sospensioni gli è stata data l'ultima possibilità di cambiare atteggiamento sul forum. Lui ha continuato a comportarsi allo stesso modo e quindi si è proceduto con il ban.

~FullSyst3m~
04-08-2009, 12:50
Perché è molto "rattoppato". Diciamo che il supporto a transazioni, trigger, integrità referenziale è stato aggiunto integrando un prodotto di terze parti (InnoDB), trovandosi a supportare modalità di locking diverse e quindi diverse tecniche di utilizzo a seconda del tipo di database.
Ad esempio il full text search (quasi un obbligo per almeno una tabella in molti siti internet) si può utilizzare solo per tabelle MyISAM (il tipo originale di tabella) e non su quelle InnoDB, peccato che le tabelle MyISAM supportano il locking solo e livelllo dell'intera tabella (si possono fare letture concorrenti, ma non scritture e letture concorrenti e scritture concorrenti) e non supportano le transazioni. Cosa assurda per un sito web o per un qualunque altro utilizzo serio.

Eppure è usatissimo. Tu cosa consigli allora?

DanieleC88
04-08-2009, 12:51
PostgreSQL!

astorcas
04-08-2009, 12:55
PostgreSQL!

OT

Da che programma viene quella regola d'oro? :asd:

/OT

cionci
04-08-2009, 13:14
Eppure è usatissimo. Tu cosa consigli allora?
Dipende da quello che devi fare, se devi sviluppare un sito web in PHP MySQL è quasi d'obbligo.

~FullSyst3m~
04-08-2009, 13:25
Dipende da quello che devi fare, se devi sviluppare un sito web in PHP MySQL è quasi d'obbligo.

Dicevo proprio questo io con "usatissimo".

DanieleC88
04-08-2009, 13:44
OT

Da che programma viene quella regola d'oro? :asd:

/OT

:wtf:

astorcas
04-08-2009, 14:32
:wtf:


scusa sono stato un po' criptico.. mi riferivo alla firma. Che software è quello screenshot? :)

cionci
04-08-2009, 14:42
Dicevo proprio questo io con "usatissimo".
Appunto, quindi se è usatissimo non puoi fare a meno di conoscerlo anche se non è il top ;)

DanieleC88
04-08-2009, 14:45
scusa sono stato un po' criptico.. mi riferivo alla firma. Che software è quello screenshot? :)
Aaaah ecco, non avevo collegato! :)
Boh in realtà non so di che software si tratta, l'ho trovata tempo fa su un blog e mi è piaciuta troppo! :D

astorcas
04-08-2009, 15:18
Cmq a sfavore del C# vorrei far notare una cosa che a me proprio nun piace:


Foo f = new Foo(10,20); //f.a = 10; f.b = 20
Foo f2 = f;
f2.a = 12;


f.a quanto varrà ora? :muro:

Kralizek
04-08-2009, 15:29
Cmq a sfavore del C# vorrei far notare una cosa che a me proprio nun piace:


Foo f = new Foo(10,20); //f.a = 10; f.b = 20
Foo f2 = f;
f2.a = 12;


f.a quanto varrà ora? :muro:

se Foo é una classe, banalmente 12 perché f2 ed f sono un puntatore allo stesso oggetto. Se é una structure, potrebbe valere 10, ma non ne sono sicuro :P

astorcas
04-08-2009, 15:40
se Foo é una classe, banalmente 12 perché f2 ed f sono un puntatore allo stesso oggetto. Se é una structure, potrebbe valere 10, ma non ne sono sicuro :P

si è vero vale 10, ma da cosa deduco che è una struct o una classe? La sintassi non me lo permette... uffa!

WarDuck
04-08-2009, 16:05
Aaaah ecco, non avevo collegato! :)
Boh in realtà non so di che software si tratta, l'ho trovata tempo fa su un blog e mi è piaciuta troppo! :D

O Code-Blocks o DevC++ mi sa...

DanieleC88
04-08-2009, 16:21
O Code-Blocks o DevC++ mi sa...
No, Visual C++, l'ho appena beccato: http://www.myconfinedspace.com/2007/07/05/always-code-as-if-the-person-who-will-maintain-your-code-is-a-maniac-serial-killer-that-knows-where-you-live/

Code::Blocks non mi sembrava "il tipo", e detto da Dev-C++ sarebbe stato ipocrita... :D

Kralizek
04-08-2009, 16:24
si è vero vale 10, ma da cosa deduco che è una struct o una classe? La sintassi non me lo permette... uffa!

IntelliSense lo dice :)

astorcas
04-08-2009, 16:32
IntelliSense lo dice :)


si certo ma non credo che le specifiche di un linguaggio debbano nascondere tali ambiguità, tanto da sentirsi "costretti" ad usare un IDE per fare chiarezza. Boh secondo me dovrebbe esserci qualche sorta di differenziazione per accedere a campi di istanze di classi o di struct.
boh poi magari so' fissato io :Prrr:

malocchio
04-08-2009, 16:37
si certo ma non credo che le specifiche di un linguaggio debbano nascondere tali ambiguità, tanto da sentirsi "costretti" ad usare un IDE per fare chiarezza. Boh secondo me dovrebbe esserci qualche sorta di differenziazione per accedere a campi di istanze di classi o di struct.
boh poi magari so' fissato io :Prrr:

Sono d'accordo con te, ma ormai penso non ci si possa fare più niente.. non si cambia un'aspetto così importante di un linguaggio ormai alla versione 4...

fdfdfdddd
04-08-2009, 16:40
Beh, ma se ti fa schifo che sia IntelliSense a dirtelo puoi sempre guardare la definizione del tipo :-P

Comunque puoi sempre testare il tipo delle variabili:

Se hai una variabil di a che instanzia una classe e b una struttura avra che una volta ottenuti i tipi


Type t1 = a.GetType();
Type t2 = b.GetType();


t1.BaseType.Name restituirà "Object" mentre t2.BaseType.Name restituirà "Value Type" :-)

astorcas
04-08-2009, 16:59
Beh, ma se ti fa schifo che sia IntelliSense a dirtelo puoi sempre guardare la definizione del tipo :-P

Comunque puoi sempre testare il tipo delle variabili:

Se hai una variabil di a che instanzia una classe e b una struttura avra che una volta ottenuti i tipi


Type t1 = a.GetType();
Type t2 = b.GetType();


t1.BaseType.Name restituirà "Object" mentre t2.BaseType.Name restituirà "Value Type" :-)

Quindi in teoria ogni volta che uso un oggetto nuovo dovrei fare sto test? ... no non mi piace manco questo. Una curiosità, se non sbaglio il c++ ha le struct, si comporta come il c# oppure fa distinzione in qualche modo?

Kralizek
04-08-2009, 17:03
Quindi in teoria ogni volta che uso un oggetto nuovo dovrei fare sto test? ... no non mi piace manco questo. Una curiosità, se non sbaglio il c++ ha le struct, si comporta come il c# oppure fa distinzione in qualche modo?

in C++ esistono l'allocazione statica e dinamica sia per gli oggetti che per le struct.

Cmq non é tanto fuori dal mondo guardare l'outline di una libreria prima di usarla. IntelliSense semplicemente ti permette di dare un'occhiata con un mouseover anzicché andarti a guardarti la documentazione della stessa ;)

astorcas
04-08-2009, 17:17
in C++ esistono l'allocazione statica e dinamica sia per gli oggetti che per le struct.

Cmq non é tanto fuori dal mondo guardare l'outline di una libreria prima di usarla. IntelliSense semplicemente ti permette di dare un'occhiata con un mouseover anzicché andarti a guardarti la documentazione della stessa ;)

si si d'accordo... non è che voglia spaccare il capello in 4... dico solo che due comportamenti così differenti andrebbero separati da una sintassi diversa. Poi è chiaro che non devi fare i salti mortali per sapere se un tipo è una struct o una classe. Cmq vabbé sembra che questo non sia un problema per nessuno perciò mi metto l'anima in pace, si vede che non è un "sucks" :D

Kralizek
04-08-2009, 19:23
Il fatto è che per creare una shallow copy c'è il metodo Object.MemberwiseClone() (http://msdn.microsoft.com/en-us/library/system.object.memberwiseclone.aspx). Nel tuo caso serve una deep copy, e per questo devi implementare l'interfaccia ICloneable (http://msdn.microsoft.com/en-us/library/system.icloneable.aspx)

~FullSyst3m~
04-08-2009, 20:06
Appunto, quindi se è usatissimo non puoi fare a meno di conoscerlo anche se non è il top ;)

Eh lo so.

astorcas
05-08-2009, 09:40
Sono d'accordo con te, ma ormai penso non ci si possa fare più niente.. non si cambia un'aspetto così importante di un linguaggio ormai alla versione 4...

:mano:

Il fatto è che per creare una shallow copy c'è il metodo Object.MemberwiseClone() (http://msdn.microsoft.com/en-us/library/system.object.memberwiseclone.aspx). Nel tuo caso serve una deep copy, e per questo devi implementare l'interfaccia ICloneable (http://msdn.microsoft.com/en-us/library/system.icloneable.aspx)

scusa ma... non vedo il nesso...

Kralizek
05-08-2009, 10:12
:mano:



scusa ma... non vedo il nesso...

scusa se sono stato criptico,

volevo dire che, se devi copiare un oggetto, dovresti usare i metodi offerti dal linguaggio ed evitare la semplice assegnazione perché non sai i problemi che potresti causarti (come hai giustamente notato con la differenza tra class e struct)

astorcas
05-08-2009, 10:28
scusa se sono stato criptico,

volevo dire che, se devi copiare un oggetto, dovresti usare i metodi offerti dal linguaggio ed evitare la semplice assegnazione perché non sai i problemi che potresti causarti (come hai giustamente notato con la differenza tra class e struct)

Non è che voglio farne un affare di stato però

1) Non credo che si debba ricorrere a tanto perché si "teme" di usare l'operatore "=",

2) MemberwiseClone() è un metodo protetto di object quindi non è che puoi usarlo quando e dove ti pare.

In ogni caso non è un problema in cui si incorre ogni giorno, è abbastanza caso limite, quindi facciamo finta che non ho detto nulla! :fagiano: