Berkeley CSUA MOTD:Entry 30334
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/05/24 [General] UID:1000 Activity:popular
5/24    

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
2025/05/24 [General] UID:1000 Activity:popular
5/24    

You may also be interested in these entries...
2014/1/14-2/5 [Computer/SW/Languages/C_Cplusplus] UID:54763 Activity:nil
1/14    Why is NULL defined to be "0" in C++ instead of "((void *) 0)" like in
        C?  I have some overloaded functtions where one takes an integer
        parameter and the other a pointer parameter.  When I call it with
        "NULL", the compiler matches it with the integer version instead of
        the pointer version which is a problem.  Other funny effect is that
        sizeof(NULL) is different from sizeof(myPtr).  Thanks.
	...
2013/4/9-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Apps, Computer/SW/Languages/Perl] UID:54650 Activity:nil
4/04    Is there a good way to diff 2 files that consist of columns of
        floating point numbers, such that it only tells me if there's a
        difference if the numbers on a given line differ by at least a given
        ratio?  Say, 1%?
        \_ Use Excel.
           1. Open foo.txt in Excel.  It should convert all numbers to cells in
	...
2013/4/29-5/18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Compilers] UID:54665 Activity:nil
4/29    Why were C and Java designed to require "break;" statements for a
        "case" section to terminate rather than falling-through to the next
        section?  99% of the time poeple want a "case" section to terminate.
        In fact some compilers issue warning if there is no "break;" statement
        in a "case" section.  Why not just design the languages to have
        termination as the default behavior, and provide a "fallthru;"
	...
2012/7/19-11/7 [Computer/SW/Languages/C_Cplusplus] UID:54439 Activity:nil
7/19    In C or C++, how do I write the code of a function with variable
        number of parameters in order to pass the variable parameters to
        another function that also has variable number of parameters?  Thanks.
        \_ The usual way (works on gcc 3.0+, Visual Studio 2005+):
               #define foo(fmt, ...) printf(fmt, ##__VA_ARGS__)
           The cool new way (works on gcc 4.3+):
	...
2011/3/7-4/20 [Computer/SW/Languages/C_Cplusplus] UID:54056 Activity:nil
3/7     I have a C question.  I have the following source code in two identical
        files t.c and t.cpp:
                #include <stdlib.h>
                int main(int argc, char *argv[]) {
                  const char * const * p1;
                  const char * * p2;
	...
2011/2/5-19 [Computer/SW/Languages/C_Cplusplus] UID:54027 Activity:nil
2/4     random C programming/linker fu question.  If I have
        int main() { printf("%s is at this adddr %p\n", "strlen", strlen); }
        and soda's /proc/sys/kernel/randomize_va_space is 2 (eg; on)
        why is strlen (or any other libc fn) at the same address every time?
        \_ I don't pretend to actually know the right answer to this, but
           could it have something to do with shared libraries?
	...
2010/2/12-3/9 [Computer/SW/Languages/C_Cplusplus] UID:53708 Activity:nil
2/12    I need a way to make a really big C++ executable (~200MBs) that does
        nothing.  No static initialization either.  Any ideas?
        \_ static link in lots of libraries?
        \_ #define a   i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0; i=0;
           #define b   a a a a a a a a a a
           #define c   b b b b b b b b b b
	...
2009/9/28-10/8 [Computer/SW/Languages/C_Cplusplus] UID:53409 Activity:nil
9/28    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
        Java is #1!!! Followed by C, PHP, C++, Visual Basic, Perl,
        C#, Python, Javascript, then finally Ruby. The good news is
        Pascal is going waaaay back up!
        \_ C is still more popular than C++?  I feel much better about myself
           now.
	...
2009/8/7-14 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Java] UID:53252 Activity:high
8/6     In C one can do "typedef int my_index_t;".  What's the equivalent in
        C#?  Thanks.
        \_ C#? Are you serious? Is this what the class of 2009 learn?
           \_ No.  I have to learn .NET code at work.  I am Class of '93.
           \_ python is what 2009 learns, see the motd thread about recent
              cal courses and languages
	...
2009/7/21-24 [Computer/SW/Languages/Java] UID:53168 Activity:moderate
7/20    For those who care btw, it looks like eclipse is now A Standard Tool
        at UCB ugrad cs, probably replaced emacs.  Furthermore, people get
        angry at seeing Makefiles, (since eclispe takes care of that).  I
        guess it's just a sign of the times.
        \_ The more people at my work use eclipse the less the code is
           managable in emacs.  I'm not sure which application's fault
	...
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
	...
2005/7/15-18 [Computer/SW/Languages/C_Cplusplus, Computer/SW/Languages/Java] UID:38653 Activity:moderate
7/15    Is it possible through JNI to write a function which takes a float[]
        array and through the magic of c casts it to an int array and then
        returns the int array to Java, not modifying the actual data?
        If not, is there a good Java way to do the C equivalent of:
        int* i = (int*) f; ?
        Don't ask whether I really need to be doing this because there is a
	...
2005/6/21-23 [Computer/SW/Languages/Perl] UID:38230 Activity:high
6/21    My math and/or perl fu is weak. Is there a way to get integer
        multiplication in Perl the way it's done in C? i.e. limiting
        to 32 bits. Like 1588635697 * 1117695901 = 1166976269 in C.
        \_ Can't you just multiply and then mask all but the last 32 bits?
           \_ I don't think so; that's not the same as mult overflow.
              > perl -e 'print (1588635697 * 1117695901)'
	...
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?
	...
2004/7/1-2 [Computer/SW/Unix] UID:31106 Activity:insanely high
7/1     Using sed, how do I do the following?  I want to replace the
        first line containing a particular pattern with the 2nd line
        containing said pattern.  For example, if "line" is the pattern,
        then I want
                this is the 1st line
                this is the 2nd
	...
2004/6/25-26 [Computer/SW/Languages/Java] UID:31013 Activity:insanely high
6/25    What percent of security holes would be solved by banning strcpy()
        in favor of strncpy()?
        \_ probably not much, since they're all coming to be php bugs these
           days.
        \_ Or using Java instead of C (no buffer overrun)?
                \_ It is not always possible to use java. I have customers
	...
2004/5/21-22 [Computer/SW/Compilers] UID:30345 Activity:very high
5/21    I was not a CS major and never took the compiler class.  What is
        a good book to help me write a compiler?  And what about interpreter?
        Do they basically involve the same issues except code generation and
        optimization?
        \_ Use the book by Robert Mak, called "Writing Interpreters and
           Compilers in C++." It's a practical, hands-on "lab" type book which
	...
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
	...
2004/4/30-5/1 [Computer/SW/Compilers, Computer/SW/Languages/C_Cplusplus] UID:13508 Activity:moderate
4/30    Quick C++ question. In Meyer's More Effective C++, Item 22, he has
        a snippet of code like this:
        template<class T>
        const T operator+(const T& lhs, const T& rhs)
        {
          return T(lhs) += rhs;
	...
2004/3/3-5 [Computer/SW/Languages/Functional] UID:12505 Activity:nil
3/3     I feel like messing with Scheme. I forgot all my CS61A. Do we have
        a scheme program here, and how do I run it?
        \_ type 'scm'
           \_ thanks.
        \_ if you want to dabble in common lisp, you can download an
           evaluation version at http://www.franz.com
	...