Interpréteur ocaml ET question sur Java

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

Interpréteur ocaml ET question sur Java

par Rockleader » 24 Sep 2014, 12:42

Je vous épargne un double topic en posant les deux sur celui ci; tout d'abord ocaml

=======================================================
Question toute bête:

Comment faire du ocaml sur windows ?

Sur linux on a un interpréteur qui s'ouvrir sur terminal avec la commande ocaml.

Mais sur windows ça m'a l'air mal barré ^^

Peut être existe il un IDE compatible avec windows pour ocaml ? Auquel cas ça me serait bien utile pour mes tps ;)

========================================================


Question sur Java à présent donc.


Pour les tps on nous a fait utiliser éclipse et toutes ces fonctionnalité pour générer automatiquement un certains nombres de choses que l'on appelle des constructeurs, des setters et des getters si je ne m'abuse.


Sauf que, comme éclipse génère tout ça automatiquement j'ai pas vraiment compris pourquoi on fait tout ça. Par ailleurs, je voudrais savoir s'il y a une différence entre une méthode et une fonction/procédure ?


J'ai aussi un peu de mal avec la notion de classe, au début je m'imaginais ça comme un header en c, mais à priori après mon premier tp je me suis complètement planté...

AU final ça ressemblerait presque à une structure avec plusieurs champs, mais contrairement au C on peut faire des trucs plus poussé semblent ils comme des liens entre différentes classes...

Le problème étant que une nouvelle fois il y a un véritable fossé entre les cours et les tp, j'ai visité les liens que vous m'aviez déjà montré sur java un peu plus tôt, mais pour le moment j'avoue à avoir du mal à faire la part des choses
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Monsieur23
Habitué(e)
Messages: 3966
Enregistré le: 01 Oct 2006, 18:24

par Monsieur23 » 24 Sep 2014, 13:29

Aloha,

Pour OCaml sur Windows (comme sur GNU/Linux ou Mac d'ailleurs), le plus utilisé reste Emacs+tuareg.
« Je ne suis pas un numéro, je suis un homme libre ! »

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 14:25

par Cliffe » 24 Sep 2014, 13:32

- Si tu l'habitude de travailler sur linux pk ne pas le virtualisé sur windows ?

- Si tu ne sais pas à quoi sert les getters/setters et faire la différence entre une méthode et un fonction alors il faut revoir les bases de la poo.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 24 Sep 2014, 13:35

Cliffe a écrit:- Si tu l'habitude de travailler sur linux pk ne pas le virtualisé sur windows ?

- Si tu ne sais pas à quoi sert les getters/setters et faire la différence entre une méthode et un fonction alors il faut revoir les bases de la poo.



Sauf que la POO je la commence cette année et ces bases là on ne les as pas vu...alors peut être que ça viendra au prochain cours mais bon...
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 24 Sep 2014, 13:40

salut,

J'ai aussi un peu de mal avec la notion de classe, au début je m'imaginais ça comme un header en c, mais à priori après mon premier tp je me suis complètement planté...


une classe, c'est une struct. (juste t'as la visibilité qui passe de défaut public à protected..)

les getters/setters, c'est bon pour les programmers java.
tu devrais presque JAMAIS avoir à t'en servir.

et générer des constructeurs c'est du n'importe quoi aussi. (Hormis pe éventuellement celui de copie non attribuable au java...)

Bref, que de la bonne méthodologie enseignée par de bons profs!
ps2: mais bon, ptet faut arriver à vendre eclipse aussi :zen:
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 24 Sep 2014, 13:54

fatal_error a écrit:salut,



une classe, c'est une struct. (juste t'as la visibilité qui passe de défaut public à protected..)

les getters/setters, c'est bon pour les programmers java.
tu devrais presque JAMAIS avoir à t'en servir.

et générer des constructeurs c'est du n'importe quoi aussi. (Hormis pe éventuellement celui de copie non attribuable au java...)

Bref, que de la bonne méthodologie enseignée par de bons profs!
ps2: mais bon, ptet faut arriver à vendre eclipse aussi :zen:



TU me rassures en quelque sorte alors, je vais essayer de tout prendre de zéro et de pas utiliser les options qui génère des trucs pour faire les choses moi même, ça me parait bien plus logique.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 24 Sep 2014, 14:58

en fait, il faut utiliser les trucs qui font les choses que tu fais toi même.
Ce qu'il faut pas utiliser, c'est les trucs qui font les choses que tu ne veux pas faire.

Et normalement, tu ne veux pas
écrire des constructeurs qui servent à rien
écrire des getters/setters
annoter tes fichiers avec des dates de génération ou je sais pas quoi
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 24 Sep 2014, 15:27

fatal_error a écrit:en fait, il faut utiliser les trucs qui font les choses que tu fais toi même.
Ce qu'il faut pas utiliser, c'est les trucs qui font les choses que tu ne veux pas faire.

Et normalement, tu ne veux pas
écrire des constructeurs qui servent à rien
écrire des getters/setters
annoter tes fichiers avec des dates de génération ou je sais pas quoi


Bonjour,

Je ne suis pas vraiment d'accord avec toi sur les getters / setters. En POO, un concept important est le principe d'encapsulation c'est à dire que tous les attributs d'une classe doivent être private.

Cela permet d'éviter les choses de ce genre :

Supposons que l'on ait un attribut 'index' dans un objet 'item' qui appartient à [0; 5]

Sans les getters / setters :
Code: Tout sélectionner
/* Sans setter index est donc un attribut public et on peut ecrire */
item.index = -1


Code: Tout sélectionner
/* Avec setter */
item.setindex(-1);


Il suffit simplement que dans le setter setindex, il y ait par exemple :
Code: Tout sélectionner
/* A la class de l'objet item */
void setindex(int nb) {
    if (nb  5) {
         this.index = 5;
     }  else {
         this.index = nb; 
     }


Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 24 Sep 2014, 15:37

En POO, un concept important est le principe d'encapsulation c'est à dire que tous les attributs d'une classe doivent être private.

On est bien d'accord:

tu ne veux pas laisser l'utilisateur de ta classe accéder à tes internals.
Demeter oblige.

Mettre des getters/setters c'est laisser l'utilisateur bidouiller ce qu'il y a dans ta classe, alors que ta classe doit fournir un service.
(en plus des problème de compatibilité binaire ou autre)
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 24 Sep 2014, 16:25

Ok je voulais simplement être sûr qu'on était d'accord là dessus pour éviter que Rockleader croit que les getters / setters sont inutiles ^^

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 24 Sep 2014, 16:56

J'ai aucune idée de ce que c'est :ptdr:


Mais une chose est sure je vois pas en quoi les faire écrire automatiquement est une bonne chose surtout que ça doit écrire plein de truc qu'on a pas besoin...

En tout cas moi c'est l'impression que ça me donne.


Par exemple logique du tp qui nous fait générer des setteur getters; et question d'après on nous dis d'écrire une méthode (désolé j'arrive toujours pas à différer une méthode d'une fonction :mur: )

Sauf que la site méthode à créer doit faire un truc et que l'un des setteurs possèdent le même nom avec un effet différent...enfin bref ...


EDIT: d'ailleurs je précise que l'intitulé du module c'est POO et non java, donc peut être qu'ils veulent plus nous axer sur la poo que java en lui même (m'enfin pour le moment c'est un peu comme s'il nous tranchait la poire en deux et au final on sait pas pourquoi on fait des trucs x))
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 24 Sep 2014, 17:51

La POO est un concept utilisable dans pleins de langages différents (python, java, c++, flash, php, etc...). On peut même coder en pensant POO dans des langages non prévu à cet effet à la base (comme le C avec les structures par exemple).

Une méthode est une fonction particulière car elle est rattachée à une classe et ne peut être appeler que de la manière suivante (la plupart du temps) :
Code: Tout sélectionner
res = objet.methode(param);


Alors qu'une fonction s'écrit plutôt :
Code: Tout sélectionner
res = fonction(objet, param);


On appelle setter une méthode qui modifie uniquement un attribut précis d'un objet. Une méthode peut modifier plusieurs attributs de l'objet.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 24 Sep 2014, 18:28

Alors qu'une fonction s'écrit plutôt :

bah c'est ce qu'il faut retenir pour Rockleader, mais moi je vois pas trop de différence.

dapres wiki, une méthode c'est cqui permet à un objet de répondre à un message.
Ici, le message est le même: param+nom de la fonction (sémantique)

dans les deux cas, la fonction appartient à l'interface de l'objet, n'est-ce pas la la même chose qu'une méthode!
la vie est une fête :)

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 16:31

par joel76 » 24 Sep 2014, 22:58

"Object-oriented programming (OOP) is a programming paradigm that represents the concept of "objects" that have data fields (attributes that describe the object) and associated procedures known as methods. "
dixit cet article

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 24 Sep 2014, 23:24

fatal_error a écrit:bah c'est ce qu'il faut retenir pour Rockleader, mais moi je vois pas trop de différence.

dapres wiki, une méthode c'est cqui permet à un objet de répondre à un message.
Ici, le message est le même: param+nom de la fonction (sémantique)

dans les deux cas, la fonction appartient à l'interface de l'objet, n'est-ce pas la la même chose qu'une méthode!


Je suis d'accord, mais disons que la seule différence est qu'une méthode est déclarée dans l'objet alors qu'une fonction est externe à la classe. (Disons plutôt que pour Rockleader c'est ce qu'il faut retenir).

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 25 Sep 2014, 08:27

(Disons plutôt que pour Rockleader c'est ce qu'il faut retenir).

ui on est d'accord.

Je faisais juste **** le monde avec la notion d'interfaces :)
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 26 Sep 2014, 23:29

Au passage je suis à bout de patience,

mon windows étant un 32 bits j'ai installé Virtual box 32 bits sur mon pc pour émuler un linux.

Du coup dans ma liste, je ne peux émuler que des systèmes à 32 bits, mais peu importe ou je cherche sur internet, je ne trouve aucune image iso de ubuntu ou fedora en 32 bits, il n'y a que les 64 bits...c'est vraiment pénible...d'autant plus que j'ai tenté de lancer en mettant l'image ISO de ubuntu 64 bits en présélectionnant ubuntu 32 bits dans virtual box; et bien évidemment ça n'a pas marché...

Message obtenu dans le boot de virtual box:

This kernel requires an x86-64 CPU but only detected an i686 CPU
Unable to boot - Please use a kernel appropriate for your CPU
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 14:25

par Cliffe » 26 Sep 2014, 23:39

virual box c'est dla daube. utilise ça : http://www.clubic.com/telecharger-fiche15594-vmware-player.html

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Sep 2014, 08:41

http://www.ubuntu-fr.org/telechargement#

Il te suffit d'appuyer sur plus d'options à l'étape 1 et de choisir 32 bits ^^

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 27 Sep 2014, 09:13

ampholyte a écrit:http://www.ubuntu-fr.org/telechargement#

Il te suffit d'appuyer sur plus d'options à l'étape 1 et de choisir 32 bits ^^



Damned !!!

Merci je l'avais loupé celui là^^
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite