Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

Programs for a Sorcerer Supreme

Name: Anonymous 2010-04-10 9:10

Hello, /prog/.

I know the subject is vague, so let me explain:

I'm confident I know some programming languages very well, but I feel my knowledge is lacking when it comes to many others. So I'm looking for programs that can sharpen up my skills. Stuff that requires one to use most of a language's features. What would you suggest?

C - compilers. Device drivers?
C++ - game engines?
Scheme - an interpreter?
Common Lisp - ?
Haskell - ?
Java - ?
.NET - ?
Scala - ?
Python - ?
Ruby - ?

Name: Anonymous 2010-04-10 9:21

C - compilers
Why? In my opinion, there's nothing in C that makes it a good language for writing compilers - I'd even say that almost always there are better alternatives.

Name: Anonymous 2010-04-10 9:47

Ruby - blog post

Name: Anonymous 2010-04-10 9:55

>>2
There's the portability - you may want to run on some platform for which there only exists C compiler. And the speed.

Name: Anonymous 2010-04-10 10:04

>>2
Because having compiler compiled by a compiler compiled by another compiler compiled by another compiler compiled by yet another compiler compile your compiler means you get the worst things about all of them added together. All the bugs from 6 different compilers are now creating problems with your compiler, all the optimization problems from the pipeline of different compilers are added together, all the attack vectors are combined and you end up with a huge surface of complete shit. Writing a compiler or anything important (read: a device driver, an embedded system etc) has to be done close to the metal.

As far as the initial post goes:

Common Lisp/Scheme - See SICP

Haskell - Anything highly mathematical. Perhaps a CSG raytracer?

Java - Large OO business application. Eclipse plugin perhaps. Make sure you use SWT, Swing, XML, JavaBeans, Hibernate, Reflection, Collections (Generics), JSP.

.NET - Not a programming language.

Scala - No

Python - Web Browser

Ruby - >>3

Name: Anonymous 2010-04-10 10:07

>>5
Python
Lol!

Name: Anonymous 2010-04-10 10:19

>>5
A lot of languages go for the small bootstrapper in C and then the full compiler in the bootstrapping version of their language, so it would be 2 sets of compiler bugs tops. If you keep your bootstrapping language clean enough, you'd only need to worry about your own compiler.

And personally, I'll take a high level language over C any day.

Name: Anonymous 2010-04-10 10:26

>>7
Which is a pretty terrible idea, since most of the same languages aren't very suited for compiler design, even before they restrict themselves to the subset they can compile in the bootstrapper.
Just stick with C, and use a parser generator, a string handling library and any other libraries you need. You don't get all those in a language that's new to the compiler business.

Name: Anonymous 2010-04-10 10:30

>>7
Real men have the balls to program in C even if they don't care about buffer overflows or shit like that. You are not a real man. Please fly away with those flappy wrists of yours while listening to this song: http://www.youtube.com/watch?v=Rgx9ZlkXyOI

Name: Anonymous 2010-04-10 10:42

>>9
Hello Cranky Unix Neckbeard. We all know real men toggle in their programs with switches, so you don't qualify either.

Name: Anonymous 2010-04-10 10:44

group#A low level languages: C, C++, Assembly - Learn assembly first, dont make the mistake of being another "Teach yourself C++ in 21 days programmer. assembly will make you understand what is really going on.

group#B functional languages: Lisp, Scheme, ML, OCAML, Haskell, Erlang (experimental: Scala, Clojure) - Just pick one and learn it, Scheme is usually the easiest to start out with although some people really dont like parenthesis and will start with Haskell. I personally believe its better to start with Erlang than Haskell as Erlang is sort of a subset of Haskell. Wait till youve learned a conventional functional language before you try an experimental one like Scala or Clojure

group#B scripting languages: Python, Ruby, Perl, Lua - Again, just pick one and stick with it. The advantage of one over the other is really just a matter of opinion and preference.

Name: Anonymous 2010-04-10 10:50

God tier languages: Brainfuck - touring complete, nice and terse, scalable software solution.

Name: Anonymous 2010-04-10 10:51

assembly will make you understand what is really going on.
http://www.infoq.com/presentations/click-crash-course-modern-hardware

Name: Anonymous 2010-04-10 10:53

Name: Anonymous 2010-04-10 10:54

>>9
I'd like to suggest http://www.youtube.com/watch?v=fbGkxcY7YFU instead.

Name: Anonymous 2010-04-10 11:32

>>10
Unix? Fuck you, I use DOS. Real men implement their own security. My security is a gun that shoots people who try to use my main machine, man. It's simple and effective.

I have an enormous brain and an even bigger penis. While I work out, I dictate my programs in a Brooklyn accent to a secretary in a skanky maid costume (she knows she likes it). I know all the MIPS, SPARC, and x86 opcodes by heart, and I use compile time constants for control flow. In the middle of winter I run naked through the Himalayas and drink a gallon of gatorade so I can write C programs in the snow.

I can bench press all of Microsoft.

Name: Anonymous 2010-04-10 12:29

Stop fighting!

Name: Anonymous 2010-04-10 13:06

>>17
I'll fight you!!!!

Name: Anonymous 2010-04-10 13:15

>>16
get your niggerfaggot ass back to /b/

Name: Anonymous 2010-04-10 13:16

>>5
Haskell - Anything highly mathematical. Perhaps a CSG raytracer?
If that is so, why does xmonad exist? I'll take no less than a solid answer.

Name: Anonymous 2010-04-10 13:34

>>19
* Homosexual African American

Name: Anonymous 2010-04-10 13:40

>>20
Because dons is in deep denial.

Name: Anonymous 2010-04-10 14:06

Java - lots of mobile phone apps

Name: Anonymous 2010-04-10 14:44

>>20
Are you suggesting that Haskell was an exceedingly good choice for xmonad, and (say) C would have been especially inappropriate?

Name: Anonymous 2010-04-10 14:49

>>16
I can bench press all of Microsoft.

I lol'd.

Name: Anonymous 2010-04-10 16:52

>>24
Are you suggesting that a tiling window manager for X is something highly mathematical?

Name: Anonymous 2010-04-10 17:03

>>26
Of course, I have several very dry papers on the subject (each more dry than the last).

Name: Anonymous 2010-04-10 17:04

>>27
dwm's source code says otherwise.

Name: Anonymous 2010-04-10 17:22

>>28
Or perhaps it is an elegant mathematic proof in a notation suspiciously enough like C to fool you.

Name: >>24 2010-04-10 18:29

>>26
No... I was suggesting the opposite. Be sure to read all the words next time.

Name: Anonymous 2010-04-10 19:09

>>11
I wouldn't call Common Lisp as purely functional. It's designed to support functional programming, but you can do imperative programming in it just fine. CL is also very nice when it comes to metaprogramming, and it can be used for low-level tasks too with implementation-dependent extensions(FFI...). It's also nice for writing compilers and interpreters as runtime code generation is defined in the CL standard, thus you can compile to CL and just leverage the native code compiler rather nicely (of course, you can write full fledged compilers just as well, but you can do that in any real programming language...).

tl;dr: Common Lisp is a mudball where all kinds of programming paradigms are mixed in, and you're free to use whatever best fits your style.

Name: Anonymous 2010-04-10 19:28

>>11
Nobody asked "how do you group programming languages" or "in which order should I learn different programming languages".

Basically >>5 was the only one who gave a proper reply to this thread.

Name: Anonymous 2010-04-10 19:53

>>31
I agree, Common Lisp is not a pure functional language, neither is Scheme, ML or OCAML. But Haskell and Erlang are. Lisp was not originally intended to be a programming language but was a mathematical study of computation by John McCarthy and was implemented as an interpreter by Steve Russell one of his students. So Lisp was always open to different ideas as it was never intended to be a specific language design.

>>32
Yes, OP did not ask for languages to be grouped, but he should have, because its wasteful to start out learning a bunch of languages that are similar to each other unless you happen to be specializing in a specific type of programming. If you want to get good at something like programming you have to make a choice on one or two languages to start out and then focus your energy on that language.

Name: Anonymous 2010-04-10 21:17

>>33
He implied he already knows how to program. He was asking which specific programs he should write for each specific language so he could ``sharpen up'' his skills. Please read his post again.

Name: Anonymous 2010-04-11 9:24

>>34

Who cares? When I make threads, I don't necessarily expect the responses to be related to the topic - as long as we're discussing something in a somewhat serious manner, I couldn't care less if my Brainfuck Fibs implementation thread turns into a discussion on FPGA tripcode crackers.

Just be thankful that your responses in the thread are very closely related to the topic at hand - don't throw a hissy fit just because people aren't taking every last item of the topic into consideration. Go take a look around at some other /prog/ threads and realize that it's a god damned miracle that you even got this many serious replies.

Name: Anonymous 2010-04-11 9:41

>>35
YHBT.

Name: Anonymous 2010-04-11 11:59

>>35
Most of my threads turn out to be very rewarding. Half of them descend into pure madness, but it's QUALITY MADNESS. I've come to the conclusion that the quality of a thread rests on the OP.

Name: Anonymous 2010-04-12 12:34

>>24
The problem with software written in C is that it has the crippling weakness of not being written in C.

Name: Anonymous 2010-04-12 12:52

>>38
From a contradictory premise like this one, you can prove any statement. For example, right now I could offer a logical proof that you are the anthropomorphic representation of the book House of Leaves

Name: Anonymous 2010-04-12 12:53

>>39
That book was bad and you should feel bad.

Name: Anonymous 2010-04-12 16:38

>>41
That post was bad and you should feel bad.

Name: Anonymous 2010-04-12 17:53

>>39,40
Xarn only gave House of Leaves 2 stars! ★★☆☆☆

Name: Anonymous 2010-04-13 0:20

>>11
>C++, C
>low-level

............................................________
....................................,.-'"...................``~.,
.............................,.-"..................................."-.,
.........................,/...............................................":,
.....................,?......................................................\,
.................../...........................................................,}
................./......................................................,:`^`..}
.............../...................................................,:"........./
..............?.....__.........................................:`.........../
............./__.(....."~-,_..............................,:`........../
.........../(_...."~,_........"~,_....................,:`........_/
..........{.._$;_......"=,_......."-,_.......,.-~-,},.~";/....}
...........((.....*~_......."=-._......";,,./`..../"............../
...,,,___.\`~,......"~.,....................`.....}............../
............(....`=-,,.......`........................(......;_,,-"
............/.`~,......`-...............................\....../\
.............\`~.*-,.....................................|,./.....\,__
,,_..........}.>-._\...................................|..............`=~-,
.....`=~-,_\_......`\,.................................\
...................`=~-,,.\,...............................\
................................`:,,...........................`\..............__
.....................................`=-,...................,%`>--==``
........................................_\..........._,-%.......`\
...................................,<`.._|_,-&``................`

Name: Anonymous 2010-04-13 0:23

>>44
★I★A★B★T★ assembly-level is pretty low dude ★I★H★B★T★

Name: Anonymous 2010-04-13 3:00

Everybody uses C for everything. Go learn C.

Name: Anonymous 2010-04-13 16:53

Rite adventure games in common lsip

accomodate the descendign star of scala

yeartheart Enters an area

the fflying.     Buttress

       Eclipsing scheme, SICP

#SAGEFAULT

Name: Anonymous 2010-12-17 1:39

Are you GAY?
Are you a NIGGER?
Are you a GAY NIGGER?

If you answered "Yes" to all of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!

Don't change these.
Name: Email:
Entire Thread Thread List