Un pomeriggio con Monodevelop

ottobre 28, 2007 di Melfitarre

Vorrei condividere con tutti coloro che pensano che monodevelop sia un buon progetto un pomeriggio con questo. Per chi non lo sapesse Mono è un progetto che vorrebbe portare l’ambiente .NET su altre piattaforme che non siano per forza legate alla Microsoft. Per chi non lo sapesse la piattaforma .NET in realtà si basa su uno standard dell’ ECMA che sarebbe implementabile su qualsiasi sistema. In realtà le specifiche dell’ECMA definiscono soltanto una parte del .NET, il resto è liberamente scritto dalla Microsoft.

All’università di Genova l’ambiente Microsoft è, purtroppo, considerato l’ambiente principe per lo sviluppo di applicativi di tipo commerciale insieme a Java e l’ambiente Visual Studio, che i contribuenti pagano fior di soldi attraverso l’università e quindi il ministero dell’istruzione, il mezzo per creare applicativi competitivi per il mercato. Ma io, in quanto utilizzatore di linux, sono sempre più convinto che in futuro avranno sempre più successo gli applicativi multipiattaforma. In un futuro sarà di primaria importanza secondo me, sapere trasportare programmi scritti con Visual Studio su altre piattaforme. Così,  per cultura personale, ho deciso di testare l’ambiente Mono e di lavorare per creare applicativi multipiattaforma con .NET.

Ho programmato i miei primi due oggetti senza problemi, lo sviluppo in C# è identico a quello in Java e se sai sviluppare con uno sai sviluppare con l’altro. La compilazione via riga di comando era perfetta, l’eseguibile .exe creato funzionava perfettamente con mono. Da lasciare sbalorditi. Non sono un grande sostenitore di .NET, ma più che altro perchè sono di parte. Testandolo devo però dire che non ha nulla da invidiare a Java. Ciò che però fa il framework, a parte l’implementazione è anche l’ambiente di sviluppo. Così decisi positivamente di testare anche  Monodevelop. Devo dire che per essere in una fase iniziale, monodevelop ha veramente tantissime caratteristiche di Visual Studio e secondo me diventerà un editor potentissimo. Unico neo, quel maledetto gtk#. Una delle caratteristiche più potenti di Visual Studio è quel magnifico editor di interfaccia utente integrato con l’ambiente.  Gtk# è una menomazione, non una caratteristica di MonoDevelop. Lo sviluppo dell’interfaccia grafica è stato impossibile: crash ogni cinque minuti e problemi con ogni tipo di componente. In particolare crash di MonoDevelop quando tento di aggiungere una voce a un menu o quando definisco l’evento “premi tasto” di un button. Così, dopo 4 ore di continui tentativi ho dovuto mollare, aprire la virtual machine con Windows Server 2003 e lavorare con Visual Studio. Una delusione. Qui sotto posto tre immagini, prima di inserire una voce in un menu, durante e dopo il crash.

Prima del menu:

primadeldisastro.png Durante la sua creazione:

creazionedelmenu.png

Appena provo a salvare il progetto:

dopoildisastro.png

In realtà l’ambiente, se cresce un pò, potrebbe essere utilizzato come ambiente di sviluppo. Anche se proprio non ne capisco il motivo. Java è C#, a livello di programmatore sono praticamente identici. Siamo davvero sicuri di voler usare qualcosa di legato ai brevetti Microsoft? Continuo a non capire il perchè di Mono.

Programmare in C: introduzione

febbraio 13, 2007 di Melfitarre

Il C è un linguaggio imperativo fortemente tipato. Entrambe le caratteristiche, unite alla semplicità e alla leggerezza fanno di questo linguaggio uno dei piu’ usati al mondo. Il kernel linux, per esempio, è scritto in C e varianti di questo linguaggio.Inoltre il C è la base fondamentale di tutti quei linguaggi nuovi che nonostante sfruttino un approccio orientato agli oggetti continuano a usare all’interno del proprio codice costrutti imperativi. Il C è un linguaggio molto veloce: i piu’ recenti linguaggi esistenti sono interpretati e quindi molto piu’ lenti, il codice in C viene compilato in modo tale che la macchina possa interpretare i comandi a velocità altissima. Ciò che il C guadagna in velocità lo perde in semplicità di utilizzo: al giorno d’oggi molti linguaggi gestiscono problemi che in C risultano molto fastidiosi

Il motivo per cui, nonostante esistano linguaggi piu’ recenti, viene ancora insegnato il C nelle università è che esso rappresenta non solo la storia della programmazione ma anche il modo piu’ semplice per entrare nell’ottica della programmazione.

Per programmare in C basta poco: un editor di testo ( notepad per Windows o gedit/kate per linux vanno benissimo ) e il compilatore GCC . I sorgenti dei programmi sono files di testo con estensione .c e nel file fondamentale deve esserci una funzione main da dove la macchina comincia a eseguire i comandi:

———————-
#include <stdio.h>

int main(){

return 0;

}

———————-

Per compilare basta lanciare da linea di comando ( cmd.exe per windows e una shell qualsiasi per linux ) gcc nomefile.c -o nomeeseguibile.

La prima riga è #include <stdio.h> e serve per includere le librerie standard del C. Dentro queste librerie sono presenti le funzioni fondamentali del C, senz’altro utili per cominciare. int main() è la nostra funzione main() che restituisce un intero ( vedremo piu’ avanti il concetto di funzione e i valori di ritorno ). La funzione main è delimitata da { } dentro le quali ci sono le nostre istruzioni. Al momento la funzione è vuota, con calma impareremo a sfruttare questo spazio per far fare al pc quello che vogliamo.

Hello world!

febbraio 12, 2007 di Melfitarre

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!