Posted by jasp on 17:59:00 06-03-2003
Pre conditions, post condition, invariants, proper object technology.
I encourage anyone who hasn't tried it to download a free copy of eiffelstudio from http://www.eiffel.com.
Posted by Smerdyakov on 05:02:00 06-04-2003
It looks clearly weaker than popular functional languages like ML and Haskell. It's easy to add assertions in these languages, etc.. Do you have _any_ justification for your "best language" claim?
Posted by dxprog on 06:45:00 06-04-2003
Ask yourself the same question Smerdy -->:-|
[addsig]
Posted by Smerdyakov on 09:02:00 06-04-2003
If you don't know any of these languages, you shouldn't be involved. I've been passing around the URL to my ML usage reasons for a whiiiiile: http://www.hprog.org/fhp/MlLanguage
Posted by dxprog on 09:57:00 06-04-2003
You don't seem to understand the THERE IS NO "BEST LANGUAGE"!!!!!!! Someday their going to find out that ML has some big security hole or error that'll make Windows look good and what will you be saying then.
[addsig]
Posted by Neu[Mann] on 22:15:00 06-04-2003
dxprog, what you wrote is pretty stupid.
If they find a security hole in any ML implementation, guess what? They will FIX it! That has nothing to do with the language itself.
I'd usually agree with the "There Is No One Best Language" claim because that goes with my "There Is Nothing Perfect" phylosophy but that idea of a 'security flaw' in a programming language is nonsense.
As for Eiffel, I'm pretty sure it's as good or better than the usually OO languages out there (ie: Java, C++) but it's not backed up by any standards (not yet, search 'Eiffel standard' on Google) and it doesn't have a alot support in the GNU community beside SmallEiffel. A single company develops Eiffel for now and everyone knows that it's bad.
[addsig]
Posted by Smerdyakov on 23:03:00 06-04-2003
Thank you for conjecturing things that I didn't say and making yourself look confused, dxprog.
I didn't say anything except that it is clear to me that "Eiffel is the best" can't be true because I know languages that do everything it does better. OCaml is probably the clearest example.
Posted by jasp on 23:28:00 06-04-2003
No I don't have a justification for my use of 'best'. My subject line was very 'tabloid'.
I would, however, like to see more discussion of this language. The book "Object-Oriented Software Construction" impressed me and, whilst it could be said it is just a Mr Meyer promoting his own language, I still think there is a lot of value in his analysis.
I know nothing of ML or Caml - although i've sniffed them, so I can't comment on them. But I have the opinion that OO and functional languages are mutually exclusive in the domains they are best used for. For example I don't see a lot of functional languages being applied to GUI programming. Although CLEAN has made an attempt.
As I see it component technology/OO is the most practical methodology for general purpose programming these days. Eiffel is a good OO language.
Posted by Smerdyakov on 23:39:00 06-04-2003
OO and functional paradigms are not mutually exclusive. OCaml supports both well.
And it's rather rash to make your statement about the best general purpose paradigm with no experience with functional languages. Thousands of knowledgeable people agree that functional programming blows away all the competition without question. Almost everything associated with OO programming is a weakened, "for the masses" version of core functional techniques. You should at least have tried it before you make a claim like yours.
Posted by dxprog on 02:32:00 06-05-2003
Sorrry 'bout that. I'm just sick and tired of Smerdy's fanaticism.
[addsig]
Posted by Smerdyakov on 08:24:00 06-05-2003
I'd encourage you to stop making comments with words like "fanaticism" until you know a bit more about programming yourself. It's hard for a novice in any field to understand the strength of the advice he is given until he sees how to use it himself....
Posted by dxprog on 11:20:00 06-05-2003
It's just really gets annoying after a while. If I went around all the time saying "Learn VB. It's the best", how would you feel? I'll try not to make a big deal about it anymore, and sorry again.
[addsig]
Posted by Jasim on 00:27:00 06-10-2003
I am new to YPN. And I'm TOTALLY new to these Eifeel, ML, CamL or Haskell or whatever.
I know VB, Clipper, dBase,FoxPro, Harbour, xHarbour, some C and very little ASM. I've also downloaded Mumps and the D-Language but havent tried it yet.
Please give a short description of Eiffel, ML and Haskell...
Regards,
Jasim
Posted by Smerdyakov on 03:03:00 06-10-2003
I have posted a URL to my introduction to ML above: http://www.hprog.org/fhp/MlLanguage
http://www.haskell.org/ has information on Haskell.
Maybe someone who likes Eiffel can tell you about it.
Posted by Yjo on 04:33:00 06-10-2003
Having taken the time to learn both ML and Haskell, I think I have to admit that neither really has much application beyond classroom compsci and maths problems. I don't imagine i'll ever hear of a widely used DB sever coded in Haskell, or Maya rewritten in ML. Even such trivial things as exchanging data between processes seems to have been tacked on as an afterthought to most mainstream functional languages. The truth is that the biggest use of computers focuses on what computers do best, mindless processing tasks one after the other, and imperative languages are the obvious representation for this in many cases. I think in an ideal situation, I personally would code in a high level OO language, linking to some functional-style backend (which no doubt will have been optimised in low level imperative languages anyway) for complex number-crunching.
Posted by Smerdyakov on 05:59:00 06-10-2003
It's fine for you to state opinions, but you haven't backed anything up. I think the hundreds of people using ML in their everyday software development would tend to disagree with you.
Posted by Yjo on 07:37:00 06-10-2003
...ok...
in your last post, your 'backing up' consisted of simple demographics. if you want to compare languages such as ML with industrial competitors based on extensiveness of use, you might want to get ready for a pretty short battle.
Posted by Smerdyakov on 08:31:00 06-10-2003
No, my backing up consisted of my page of reasons to use ML, whose URL I have posted twice already to this thread.
Posted by Yjo on 19:38:00 06-10-2003
Ml c.= 30 yrs old.
Java c.= 8 yrs old.
Perhaps you would argue that Java has only been more successful as it was flocked to by c(++) coders too ignorant to see the absurdities of their language semantics and imperative programming paradigm. All of the large functional programs i've seen have resorted to copious amounts of ugly imperative-disguised-as-functional code, which makes for hard reading (and coding), and such ridiculous concepts as monads for machine trivialities such as user input and output. Functional languages are great for teaching and learning computer science and algorithmics, for solving _functional problems_, but have not thus far been designed for the majority of systems and applications, which are 80% user interface, object persistance, communications, and, shamefully, our old friend the switch statement.
Posted by Smerdyakov on 23:34:00 06-10-2003
First of all, I think we're talking about ML here, which does not force you to use monads for IO.
Secondly of all, I hope you'll agree that any language that would need built in support for any of the things you mentioned is seriously deficient in design. Thus, your accusation seems to be that not enough folks have taken the time to write libraries to do the things you want. Luckily for the world, that's not true.
Now, since it seems you're not much into doing your own research, I'll just give a few URL's for each of the problems you mentioned:
User interface
eXene, an XWindows library
smlTk, an interface to the popular GUI kit
SDL::ML, an interface to the popular media library
AbstractUI::ML, another cross-platform GUI library that includes a visual GUI builder
Object persistence
Venari, a project run by someone I used to work for
Communications
The Standard ML 2002 Basis Library, which now includes standard structures for TCP/UDP/IP communication, full POSIX compliance (which includes pipes and other inter-process communication methods), and even some Windows-specific stuff, should that float your boat; and is included in every compliant SML compiler
Concurrent ML, which includes the best communication framework I've ever seen
"Our old friend the switch statement"
I'm guessing that this is a joke, since the case expression found in ML and Haskell is a much more featureful generalization of C switch, being able to do everything it can and more.
[ This Message was edited by: Smerdyakov on 2003-06-10 23:35 ]
[ This Message was edited by: Smerdyakov on 2003-06-10 23:36 ]
Posted by Neu[Mann] on 00:14:00 06-11-2003
A GUI builder! Cool!
I suppose one day functionnal languages will take over the world but there is plenty of work to do with C/C++/Java until that.
[addsig]
Posted by dxprog on 02:20:00 06-11-2003
Okay, be quiet already or I'm locking this baby.
[addsig]
Posted by Neu[Mann] on 03:07:00 06-11-2003
Oh yeah dxprog baby! lock that forum! lock it now!
[addsig]
Posted by Yjo on 03:08:00 06-11-2003
I'm not going to turn this thread into a flame war (no worries dxprog). As I've said, I took the time to learn (to a fair extent) both of ML and Haskell, and I don't regret either. The features of the languages make for some very elegant hacks, and I won't be avoiding functional programming in future (ML is the first taught language in the course I am starting this october). All sufficiently large problems require a balance of procedural and functional code - a million-line spaghetti code COBOL program is a terrifying thought, and trying to express a 3D real-time game engine as a pure functional declaration seems a fairly intimidating task - and both imperitive and functional techniques cam be used (to wildly varying extents) in every popular, modern language I can think of. Functional programming had a great impact for the better on my programming technique, but for the majority of programming tasks I can imagine undertaking in the forseeable futre, I'll likely be sticking to c# for high-level stuff, and c++ for low level and speed critical tasks.
Posted by Neu[Mann] on 04:13:00 06-11-2003
If you work outside research labs as a coder in commercial projects you'll have no choice but to use things like C#, C++, Java or even VB because that's what the managers imposes (most of the time). They paid a fortune on commercial tools using those languages.
One day, the current generation of functionnal programming enthusiasts will become project engineers and forces a change from imperative to functionnal languages! That'll be the days Of course, Microsoft Visual Haskell will probably be mainstream by then...
[addsig]
Posted by Smerdyakov on 05:52:00 06-11-2003
dxprog, if you lock this thread, it will only show that you have not been reading it. We're having a rational discussion about a topic that should interest many YPN visitors.
Yjo, it looks like we've gone in circles again, so I'm also up for ending the discussion. You have not justified anything that you've said, but it looks like we'll have to settle for seeing your opinion.
However, I can't stop myself from responding to two off-hand remarks you made to explain why you prefer C++ over ML:
* Importance of mixing functional and procedural techniques: That's right, and this is exactly what makes ML so useful, since it supports both styles well and naturally.
* Being forced to use C++ for speed-critical stuff: You would be forced to use ML over C++ if you cared about speed and were constrained to using free development tools. I think both MLton and OCaml produce faster code than g++. I remember that you are not an open source fanatic, but at least this provides a level playing field to gauge how suited languages are to optimization.
Posted by dxprog on 07:07:00 06-11-2003
I've been readin this thing all right. At some points it just seemed like things were going to turn nasty (real fast).
[addsig]