debutant cherche avec quoi se lancer

rackis a dit:
Bon pour résumer : c'est possible de débuter (pour un gars qui c'es arrété à la prog sous sa casion) avec cocoa?
Je dirais non....en effet le prinsipale problème de cocoa est son paradigme de programmation : l'objet.
C'est un framework très puissant avec un langage (l'objective C) extremement élégant, mais des générations de programmeurs chevronnés ont mis beaucoup de temps et d'énergie pour comprender ce type de programmation.
La première chose à maitriser : la programmation impérative !!! En cela le python qui est un language objet mais permet sans problème ce genre de programmation si l'on le veut, pour dans un second temps se mettre à programmer des classes à tout va, est vraiment adapté à un débutant.De plus la syntaxe du Python est bien plus claire que celle du c et de tout ses dérivés.
 
Gallenza a dit:
La première chose à maitriser : la programmation impérative !!!
Sorry pour mon ignorance :siffle:
mais c'est quoi la programmation 'impérative ?

Filou :confused:
 
La programmation impérative c'est comme ce que fait ma femme avec moi :
"tu fais çà puis tu fais çà,... tu vaux rien,... et si c'est pas content reviens au début"

C'est avec mon expérience personnelle que je cause :D
 
  • J’aime
Réactions: tatouille
Marty_Macfly a dit:
bonjour ,
Je suis étudiant en prepa MP avec option info et depuis l'année derniere nous travaillons sur du Ocaml .
seulement , l'anné derniere j'avais un pc et maintenant je suis passé au mac (OS X.3)
et je ne comprends pas comment lancer ocaml ni avec quel programme
En fait je l'ai telechargé depuis http://caml.inria.fr/caml-macosx-howto/index.html
et instalé sur mon Mac (flambant neuf !!
icon7.gif
) et apres, ne voyant aucun icone de lancement ni de fichier ocaml je suis perdu ( ss doute trop abitué à windows xp)
Si quelqu'un pouvais m'indiqué le plus precisement possible les actions à effectuer ( je ne suis pas trés callé en informatique ) , je lui en serais tres reconnaissant

Merci d'avance
Si tu veux pas t'embêter la vie, tu installes en plus de Ocaml un des environnements graphiques développés pour l'utiliser simplement. Ils sont dispos sur le site de Caml. Tu as par exemple CocOCaml que j'ai l'habitude d'utiliser (le lien vers le deuxièm environnement n'est plus à jour..

Tu pourras comme ça tester très facilement des bouts de code sans jouer du terminal

 
Gallenza a dit:
T'ass franchement totalement tord, il n'a pas de languages pour les spécialistes et d'autres pour les newbies...
Tout dépend du temps que l'on veut y consacrer. Celui qui veut aller au fond n'échappera pas aux complexités des langages, celui qui veut faire joujou peut très bien s'intéresser à des outils mieux "intégrés".


Gallenza a dit:
Par contre il faut absolument choisir un outil multiplateforme et standard, en un mot libre...le C et le Python ou le Perl ou Ruby ou n'importe quel autre language sont netement SUPERIEURS à des outils comme RealBasic ou Revolution...le fait de ne pas avoir à payer ne doit pas ê^t^rê^troublant, c'est l'une des caractéristiques des logiciels libres que d'etre meilleurs que les logiciels prioprio.
Là aussi, ça dépend : si ton but c'est de créer rapidement un petit outil dont tu as besoin sur une machine donnée, le multiplateforme n'a rien d'indispensable et le choix de l'outil peut très bien être fait sur des critères qui n'ont rien à voir avec la philosophie de la programmation. Il faut simplement savoir que tu cours le risque de ne pas pouvoir réutiliser tes programmes dans quelques années.

J'ai longtemps fait assez intensivement de l'hypercard, l'ancêtre de revolution (ça m'arrive encore) et je peux te garantir que ça peut être fichtrement efficace et souple comme outil, par exemple pour traiter des mesures et chaîner des traitements divers (ce n'est pas pour rien si dans les dernières versions, on pouvait écrire les scripts indifféremment en hypertalk ou en applescript). Le gros avantage de ces outils est la facilité et la rapidité à mettre au point une interface pratique pour un utilisateur lambda et ajustable en 10 secondes quand c'est nécessaire.

ça ne veut pas dire qu'il n'y a pas de limitations : vitesse d'exécution (mais ce n'est pas toujours important), manque de la rigueur qu'on peut trouver en ada, etc. mais j'ai un tas de petits outils que j'aurais mis bien plus de temps à faire en C, ada ou autres.

Et surtout, le débutant peut de suite avancer avec des concepts pas toujours ringards (ce n'est pas le basic d'antan). Et je dis ça alors que, intellectuellement, je suis beaucoup plus attiré par goût par les langage comme OCaml, Ada ou autres langages "rigoureux" que par les bidouilles. Simplement, les petits tournevis sont dans certains cas, évidemment pas dans tous, plus pratiques que les marteaux-pilons.
 
  • J’aime
Réactions: tatouille
Forenheit a dit:
La programmation impérative c'est comme ce que fait ma femme avec moi :
"tu fais çà puis tu fais çà,... tu vaux rien,... et si c'est pas content reviens au début"

C'est avec mon expérience personnelle que je cause :D
non non je suis pas d'accord

La programmation impérative
-> femme dit ménage -> toi ménage
sinon
--> exit

:D:D

sinon on ne peut pas tout mélanger
les languages OO interprétés et bytecodes (Java, Python , Ruby , php)
les languages compilés C,D Obj-c , CPP
pascal ,fortran, cobol (c'est horrible se truc d'arriéré mental merci IBM :D ) ...

[ la pub ]

Objective Caml,

[ fin de la pub ]

paradigms

les shell scripts ...

pour différents sujets il existent différents animaux

au final

fais du C
énerve toi avec le C
C a n'en plus Dormir :D

et tu pourras aborder le reste tranquillement

ainsi que d'apprendre à programmer dans un environnement X

tu pourras aborder le reste tranquillement

j'ai été stupidemment censuré sur ce sujet dans un autre thread
certainement par un utilisateur windows ...
 
Pour ce que veut faire chnoub, je lui conseil plutôy de lire le tuto de C sur le site du zéro, tu apprendra à te servir de la SDL : une librairie qui te permettra de faire ce que tu veut avec les tête de tes amis ^^

pour cela tu aura besoin de XCode : tu le trouve sur les CD d'intall de OS X ( les dev tools) sinon sur le site d'Apple, mais faut une bonne connexion : http://developer.apple.com/ (inscription gratuite nécessaire)


Ah et j'oubliai : le site du zéro : http://www.siteduzero.com/
 
je te conseille pas XCode pour commencer (installe xcode juste pour avoir les compilo et headers)

mais plutot gcc à ligne de commande via le terminal
c'est beaucoup plus simple à aborder et pour comprendre

le principe de shared object/static /executable

pour ce qui est de SDL c'est un peu gros pour commencer

avant d'utiliser un framework essaye deja avec ce que tu as disposition
sous osx il y a déjà de quoi s'amuser un bon bout de temps
 
je ne suis pas sur que chnoub est encore interessé par la réponse!

cf date! ;) ;) :p


sinon ben faut pas oublier projectomega comme site!!

++
 
Bonjour,

Très intéressante cette discution. Parfois un peu vive, et c'est très bien, mais du coup, je ne pense pas que l'auteur de la première question soit plus avancé.

Ce qu'il faut retenir, c'est que quelque soit le langage pris pour débuter dans la programmation, c'est :

1) d'être obstiné
2) d'être rigoureux
3) passionné par ce que le fait (bien que ce point 3 est très proche du 1)

après le reste viendra...
 
Je trouve que la discussion n'a pas trop répondu à la question posée.
Chacun cherche à dire du bien de son langage chéri, mais j'aimerais que vous vous rappeliez des première fois que vous avez programmé.

J'ai commencé par le GFA Basic sur Atari ST, et pour afficher un message, on tape print "Message" et on lance. Ca me semblait déjà suffisamment compliqué à l'époque.
Imaginez seulement ce qu'il faut savoir pour faire la même chose en C, Java, ObjC ou quasiment tous les langages que vous avez cité.

Alors, à part RealBasic (même si sa syntaxe est exécrable) et AppleScript (et encore...), je ne vois pas trop ce qui s'approche de cette facilité.
 
fais du C

c'est pour apprendre , pour apprendre n'importe quoi pas par la suite C
reste la meilleur école pour devenir tout terrain
:zen:

il n'y a que ça à comprendre
 
bonjour bonjour
sisi je suis toujours la; mais entre le boulot, la recherche d un appart, ses travaux, etc.... j ai pas eu le temps de me repencher sur la programmation... j emmenage ds un mois et apres je serai plus cool..
merci pour toutes vos reponses! et continuez! ;-)
mais c est vrai que je me perds un peu la dedans... tout ce que je savais faire a mon epoque d etudient, c'est des programmes en "pascal like" sur ma TI89; mais c est deja pas mal me direz vous
 
du c, du c et encore du c.
le c est portable et marche sur toutes le bécanes quand on respecte les règles.
Et puis le c ca peut rester soft, on peut très bien ne pas utiliser les pointeurs et l'allocation dynamique de mémoire, ne faire que des passages de variables. Bien sur ensuite quand on a compris les pointeurs, on peut ce mettre à l'objet avec du c++. Quand à l'objective C, cela reste un langage apple, donc pas portable. Car il faut avant tout que les programmes puissent compiler sous windows ... malgré tout :zen:
 
CheepnisAroma a dit:
Peut-on apprendre Objective-C sans rien connaître au langage C ou bien c'est casse-gueule ?
oui mais il y'a du c dans l'obj-c le pont est naturel
obj-c ne veut pas dire seulement Cocoa

Plum Samples
Bloc de code:
#include <Foundation/Foundation.h>

int DemoApplicationMain();

int main(int argc, const char *argv[])
{
  return DemoApplicationMain();
}

int DemoApplicationMain()
{
    NSAutoreleasePool *AutoPool;
    NSString *FileToRead=@"DemoFileHandle.m";
    NSString *FileCopied=@"DemoFileHandleCopy.m";
    const char *File2Create="DemoFileHandleCopy.m";
    
    id FileContent;
     id FileCopy;
     id stdIn0;
     id stdIn1;
     
     //NeXT [[NSAutoreleasePool alloc] init];
    AutoPool=[NSAutoreleasePool new];

    FileContent=[[NSFileHandle fileHandleForReadingAtPath:FileToRead] retain];
    
    #ifdef DEBUG
        assert(FileContent !=nil);
    #endif
    
    open(File2Create,O_CREAT,0644);
    FileCopy=[[NSFileHandle fileHandleForWritingAtPath:FileCopied] retain];
    
    #ifdef DEBUG
        assert(FileCopy !=nil);
    #endif

    stdIn0=[[FileContent readDataToEndOfFile] retain];
    
    [(NSFileHandle *)FileCopy writeData:stdIn0];
    [FileContent release];
    [FileCopy release];
    
    FileContent=[[NSFileHandle fileHandleForReadingAtPath:FileCopied] retain];
    
    stdIn1=[[FileContent readDataToEndOfFile] retain];
    [FileContent release];

    if([stdIn0 isEqual:stdIn1])
    {
        printf("Test passed (length:%d)\n", [stdIn1 length]);
        CFShow([stdIn1 description]);
    
    }else
    {
        printf("Test failed\n");
    }
    
    [stdIn0 release];
    [stdIn1 release];
    
    //(ANSI Standard)
    remove(File2Create);
    
    [AutoPool release];
    
    return 1;
}

Makefile
Bloc de code:
PROG_NAME=DemoFileHandle

.SUFFIXES: .o .m
.m.o:
    $(CC) -c $(CFLAGS) $<
    
CC= gcc 
LIBS= -framework Foundation
LDFLAGS= 
CFLAGS= -Wall -g
OFILES= $(PROG_NAME).o

$(PROG_NAME): $(OFILES)
    $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG_NAME) $(PROG_NAME).o $(LIBS)
    
clean:
    $(RM) *.o $(PROG_NAME) *Copy.m
Bloc de code:
#import <AppKit/AppKit.h>

int DemoApplicationMain();

int main(int argc, const char *argv[])
{
  return DemoApplicationMain();
}

int DemoApplicationMain()
{
    int AlertResponse;
    NSAutoreleasePool *AutoPool;
    AutoPool=[NSAutoreleasePool new];
      [NSApplication sharedApplication];
  
    AlertResponse=NSRunAlertPanel(
                    @"Test AppKit",
                    @"Message AppKit", 
                    @"Yes",
                    @"Cancel",
                    @"No"
          );
    
    if(AlertResponse >= 0)
    {
        if(AlertResponse == NSAlertDefaultReturn)
        {
            printf("YES");
            
        }else
        {
            printf("CANCEL");
        }
        
    }else
    {
        printf("NO");
    }
    
    printf("\n");
    
    NSLog(@"%i ",AlertResponse);
    
    return 1;
}
Makefile
Bloc de code:
PROG_NAME=DemoRunAlertPanel

.SUFFIXES: .o .m
.m.o:
    $(CC) -c $(CFLAGS) $<
    
CC= gcc -Wno-import
LIBS= -framework Cocoa -framework AppKit
LDFLAGS= 
CFLAGS= -Wall -g
OFILES= $(PROG_NAME).o

$(PROG_NAME): $(OFILES)
    $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG_NAME) $(PROG_NAME).o $(LIBS)
    
clean:
    $(RM) *.o $(PROG_NAME)

CheepnisAroma change moi cet avatar :D:D:D:D:D:D horrible vraiment :D:D
 
tatouille a dit:
oui mais il y'a du c dans l'obj-c le pont est naturel
obj-c ne veut pas dire seulement Cocoa
Objective-C = C avec une surcouche, c'est bien ça ?
J'en conclus qu'apprendre Objective-C sans connaître C est possible…
Les échantillons de code que tu as postés, c'est du C ou du Objective-C ?

tatouille a dit:
CheepnisAroma change moi cet avatar :D:D:D:D:D:D horrible vraiment :D:D
:rose: