| ||||||
| 5/17 |
| 2008/7/28-8/5 [Computer/SW/Languages/Python, Computer/SW/Languages/Functional, Computer/SW/Languages/OCAML] UID:50704 Activity:nil |
7/28 So, I'd like to try playing with a functional language. Any
recommendations?
\_ Haskel. Why would you start with anything else?
\_ Haskell if you want a _functional_ language. Ocaml if you want to
see what a proper language implementation looks like. LISP if
you want old fogies to think you are cool. -- ilyas
\_ Haskell. Why would you start with anything else?
\_ I don't know. I've heard Erlang has been used more in industry.
(Isn't Google using it for something?) I don't really know
the differences.
the differences. Sisal was for scientific computing, which is
the area I work in. F# includes OOP (but I'd rather work in
Linux.)
\_ Are you learning this to learn or are you learning it to
get industry experiance? If the second I'd say spend your
time elsewhere. Haskell is one of those languages where once
you start to understand how to actually use it this light
will come on in your brain and suddenly you will never see
programming in quite the same light. Erlang is cool, but
has a lot less support library support/people out there
messing with it, so actually trying to do anything with
it is hard. OCaml is pretty damn cool as well, but really,
if you want to wrap your head around pure functional
programming, the language you should start with is Haskell.
Oh, and you want this book: http://www.haskell.org/soe
\_ Oh, and another thing. Haskell is also good because it
makes it really hard to cheat and do things in a non
functional manner. Its purity is its strength.
\_ Ah, that's a good point. -op
\_ Well, mostly I would just like to learn about functional
programming to learn. But I generally like languages I
learn to be useful for something as well, otherwise I
never get to use it. For example, I like Ruby better than
Python, and learned it to learn it. However, everything at
work uses Python, so now I've forgotten most of the Ruby.
Thanks for the book ref.
\_ Really learning Haskell will make you a much better
programmer, even if you never use it for anything.
It really forces you to relearn a lot of things in
ways you probably never even considered, and once you
finish bashing your head against it and it starts
making sense you will be a much stronger coder. |
| 5/17 |
| 2004/9/9-10 [Computer/SW/Languages/OCAML, Computer/SW/Languages/Perl] UID:33448 Activity:high |
9/9 Why are there so much politics on the motd? Isn't this the
CSUA? Doesn't the C stands for something computer??
\_ Its stands for Computer Stuff and Unrelated Arguing
\_ Golf clap.
\_ I didn't know there even was such a thing as a golf ho,
and you're telling me they've got their own VD's?
\_ Yeah, let's talk about computer, or girls!!
\_ When someone says something stupid, I feel I must succinctly show
them the error of their ways, or at least show other reasonable
people. Oh well, I'll just let stupid people keep thinking that
way.
\_ The CSUA as an organization doesn't manage or have anything to do
with the contents of motd.public. Politics get discussed so often
because it's one of those things that never ends. You never finish
the argument. And unlike more esoteric subjects for debate,
politics is something that anybody and everybody feels qualified to
participate in. Politics is always in the news. Other things show
up on motd many times but nothing more than politics. Or Perl.
\_ Hey, I would talk about programming languages, but not a lot
of people care. P.S. Perl is morally wrong. -- ilyas
\_ Methinks he doth protest too much. --dbushong
\_ SILENCE, SINNER!
\_ what do you think of ocaml?
\_ Ocaml is a language built around a type
inference system, and I think that's like
the tail wagging the dog. The bar for
languages is set so low that if people
see something with lambdas that's fast
they get excited. It shouldn't be that
way. -- ilyas
\_ Have you ever looked over Java? I've
generally found the structure of the
language really presents itself for
large SE projects. The string
manipulation elements built directly
into the language are pretty awesome
also -- they really cut down on the
dev cycle, I've found.
\_ Pontification is preferable to work.
\_ it wasn't like this from 1980s till the late 90s, when the
failed jobless laid-off dotcomers got bitter and started to rant.
\_ Obviously someone who doesn't remember the bitterness of
joblessness of the early 90s... |
| 2004/5/20-21 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/OCAML] UID:30334 Activity:insanely high |
5/20 I have seen some ocaml comments on the motd. What about Haskell?
Is it better/worse/about the same? I know it is supposed to "pure"
but don't know what this translates to in reality.
\_ Haskell is the only language I want to know something about, yet
know almost nothing about. I know it's not speedy, unlike ocaml,
but has lots of clean ideas, and you can write really short code in
it. Haskell is a 'pure functional language' in that it allows no
sideeffects.
Haskell programmers use something called 'monadic programming' to
get around this (say when doing IO). Another way out is to use
something called 'uniqueness typing' which is what Clean does.
Personally I think insisting on a pure functional language is silly.
-- ilyas
\_ What value are these languages outside of theory and academia?
\_ Troll attempt noted and appreciated. -- ilyas
\_ "Trolls are anyone that disagrees with you," a motd
person, circa May 2004
\_ You are right, it was a thoughtprovoking question.
-- ilyas
\_ I was actually quite serious you self righteous
bastard. You're always going off about all these
obscure little languages and I actually really
wanted to know what use they are outside academia
but frankly I don't give a damn now. If you don't
know or don't want to bother explaining then just
don't. I certainly wasn't trolling. --bite me
\_ This is a legit. question. What exactly is it that makes
this language (and/or any other language you keep talking
about on the motd) much better than C? I've looked up
things like ocaml and such, but they just seem like ya
syntax to learn w/o any added benefit (the resulting code
doesn't look any easier to write/debug/maintain than C).
Its not that I have anything against learning new prog.
langs (I've been working on ObjC to do Cocoa/OSX stuff),
its just that I want to know what the real benefit is
of these non-C-like langs that you keep mentioning.
\_ Well, I can't answer this for you. _I_ find that GC
languages with good libraries infinitely easier to
get work done in than C. YMMV. Prolog is one of those
languages where if you are solving the right problem
the solution is 10 lines, and would have been 300 lines
in pretty much anything else (not a made up example).
Prolog also has fast implementations, since there's a
good mapping between prolog code and C. Also, I agree
with Dijkstra in that poking with new languages can
teach you about programming, so it's certainly good to
learn other languages just for that reason, even if you
don't plan to use them in practice. -- ilyas
\_ The only benefits of C are: there's a C compiler for
nearly every platform--okay there's only 1 benefit.
GC is a non-issue really, and I've seen as many
problems with GC as without. But yes, an important
reason to learn many languages is that some concepts
are easier to implement in different languages, hence
you actually think about doing things differently.
It's better to have many tools in the box than to
have a reeeeally good hammer. -emarkp
\_ Is there something in the language itself that dispose it to
slower implementation or just nobody bothers to make the effort?
\_ Troll attempt noted and appreciated. -- ilyas #8 fan
\_ I don't know about Haskell. Ocaml is about as fast as gcc
compiled C. Does that answer your question? -- ilyas |
| 2004/5/11-12 [Computer/SW/Languages/OCAML, Computer/SW/Languages/Functional] UID:30169 Activity:very high |
5/11 To FP activists on the motd, if currying is such a great idea, why
it's not implemented symmetrically in say Caml? It seems more
natural to treat the arguments of a function more symmetrically.
\_ If by 'symmetric' you mean that if, for example, I have a function
f of two arguments a and b, I should be able to curry on either
a or b, then Ocaml does this using labeled arguments. Caml does
not since it's meant to be a 'minimalist' language. -- ilyas
not since it's meant to be a 'minimalist' language. In conclusion,
RIDE BULLET TRAIN! USE OCAML! -- ilyas
\_ I am looking at it. So far so disappointed.
\_ I think most people who have been programming for a while
have gotten past the 'perfect language' disease. I would be
happy to address specific questions you might have. Or better
yet email me, or drop by #csua. -- ilyas
\_ I am not through with the reading yet, so I could be wrong.
So far, my complaint is the following: (1) rather bad
grammar in general. (2) The use of capitalization and
special characters to signify different kinds of
identifiers at the language level. (3) Field name in
record has file scope. (4) If typing is such an important
aspect of it, it might as well make it optional to be
dynamic, same with patterns. (5) Data structure does not
feel as flexible as it could be. One might as well think
it is C and implemnt cons using record. (6) I am not sure
how ref works, but I certainly miss pointers. Overall,
it seems to be somewhere in the middle from C, Scheme, and
maybe Prolog.
\_ (1) People complain about the syntax. It doesn't
bother me. If it bothers you, Ocaml comes with a
syntax redefinition tool called camlp4 -- you can
change the ENTIRE syntax if you want.
\_ You can write preprocessors to make Fortran look
Lisp, Lisp look like Perl, Perl look like Basic,
Basic look like C, and C look like Fortran.
(2) This is because the language is 'rich.' Perl does
the same thing. I don't really know a better way.
What Ocaml has is better than throwing gobs of parens
at the problem like lisp does. In other words, too
much syntax is better than too little.
\_ ruby i think is as powerful as perl yet has
a very clean syntax, without $ % and bare filehandles
it's as fast as it sounds. -- ilyas
etc. -someone else
\_ It's true that ruby is clean, but this comes with
a price. Everything in ruby is an object, and
it's as fast as it sounds. The other thing about
ruby is that it's dynamically typed, so you need
to distinguish less things at compile time --
this translates into a lot less syntax. Naturally,
dynamic typing makes things slow, also. -- ilyas
\_ No it doesn't. You are wrong on both accounts,
here. There are implementation techniques
to make pure object-oriented languages and
dynamically typed languages perform very
fast.
\_ Sure it does. You may make it better than
what ruby has (no hard accomplishment since
ruby has possibly the slowest implementation
of any language), but you will not be able to
beat a statically typed language because
the compiler simply has less information.
OO is useful, but ruby makes everything an
object, which is convenient but those virtual
function calls do add up. Anyways, if
someone writes a fast ruby compiler, it will
make me happy, ruby is a neat language. A
good thing to ponder, if you ever go to the
'great language shootout' page, is why the
fastest languages there are either C or
statically typed. -- ilyas
\_ You are just wrong here. YMWTG
polymorphic inline cache, or Cecil
\_ Read what I said again. I would be
happy to look at some benchmarks of
Cecil or Self. Self is neat. -- ilyas
\_ Stop being condecending. I wasn't
referring to your complaints about
the Ruby interpreter, but to
your general statements about
dynamically typed and pure OO
languages. Virtual Machines
have access to all the type
information that was available
statically, and in the case of
some type systems, more. With
that info, the VM and generate
type-specific code, in-line away
virtual functions, usw.
\_ I think it's more to shift the burdern from the
parser and compiler to the user. Perl is not a
model for good design.
(3) Yes, I don't like that. There are deeper problems
with structs and typing.
\_ I guess that labels of variant and records are
internally represented as integers. I would be
nice to be able to access them directly. Array
type should have the option of specify size,
both for efficiency and type checking.
(4) I don't understand your reasoning here. Typing
in Ocaml makes me really happy because it catches bugs
for me, and because I know how to get around it if I
need to (Obj.magic).
\_ I am not saying typing is a bad idea. But it would
be nice to have the option (1) to turn it off for
some variables or some types and (2) to delay some
typing until runtime and (3) go (not so much) further
make type a type that one can modifies and manipulate
in runtime. The same goes for pattern. There will
conceptual problems involved, but they are worth the
reward. Plus, most of the logic underlying is
already present in the compiler and just need to
be incorporated in the runtime, if called for by
the program.
(5) Don't understand what you are trying to say. Did
you notice the object system too, and functors? Is the
stdlib bad? What couldn't you find that you would find
in another stdlib?
\_ sorry, haven't got to the object system yet, but
generally I feel that a language should either
provide very elementary data structure that allows
one to describe arbitrary complex ones with relative
ease or provide so many high level data structures
that it is hard to ask more. C and Lisp are
examples of the former, while custom programing
language (Maple, Mathematica, etc) falls with the
latter. OCaml seems to be in the middle, which is
annoying. For example, I haven't seen a set type,
which of course can be implemented with tuple. But
it is not easy to implement efficiently, unless you
employs tricks that seem to defeat many OCaml
principles. Again, I could be just ignorant of some
of the powers of ocaml.
(6) If you really want, you can play with pointers using
Obj.magic (again), but you probably don't need them.
Very few people these days need pointers (actual integer
values) over references (names referring to objects) in
practice. -- ilyas
\_ somehow I couldn't find documentation for Obj.magic
but it sounds like something bad that if you use all
the time, you might as well use another language. |
| 2003/12/8-9 [Computer/SW/Languages/OCAML] UID:11353 Activity:kinda low |
12/7 Learning OCAML. What the ****[fuck] is with the syntax? It seems like
these people made a more creative pass at the Intercal concept.
\_ What's this used for anyway? Looks like something dumped on the
world by the French.
\_ (a) It grows on you, trust me
(b) You can redefine the entire syntax if you don't like it
using ocamlp4
-- ilyas
\_ No it doesn't. Most people don't have as much growing
on them as you do, ilyas. |
| 2001/8/26-27 [Computer/SW/Languages/OCAML] UID:22265 Activity:moderate |
8/26 ocaml or modula-3?
\_ sliced babies, squirrelstumper
\_ Ocaml is pretty good if you don't need access to machine pointers.
\_ ocaml for the runtime optimizer.
\_ neither. why? |
| 2001/7/20 [Computer/SW/Languages/OCAML] UID:21883 Activity:insanely high 50%like:20755 66%like:21142 57%like:22189 57%like:22388 57%like:22881 50%like:23262 57%like:36306 |
7/19 Motd poll: I want
sex:
love:.
neither:
Chocolate: .
to get into grad school: .
wife with big bosom and hot body: ..
girlfriend (wives are bad) with big bosom and hot body: .
yermom: .
a girlfriend with a hot body who likes Ocaml: .
\_ girlfriends try to become wives. Concubines are the
way to go.
yermom: .
a girlfriend with a hot body who likes Ocaml: .
\_ OCAML! OCAML! OCAML is the STANDARD! Programming language.
a hot prof in grad school: .
kinney to STFU: ...
\_ did kinney take a vacation between 7/1 and 7/16? i thought i might
have missed some from between there. the sheer volume of spew from
the man is hilarious.
fully tricked atlon mp system: .
fully tricked g4 mp system: .
fully tricked us3 mp system: . |
| 5/17 |