I've seen great web tutorials for Haskell, but is there any better entry-level language that teaches me to no longer think like a computer?
I suspect "thinking like a computer" would mean thinking in concepts of having to do stuff in a predefined algorithm sequence, which functional programming (according to my very limited knowledge of the field) appears to avoid.
No. Functional programming also works in a "predefined algorithm sequence" (that's the whole point of programming, innit).
What it does, it tries to get rid of this idea, which is brittle (i.e. difficult to get right):
You have a state (a bunch of variables with their values at some time t) that you manipulate with procedures so that at time t+1, the values of those variables has changed and the set of variables has changed.
Instead the approach is:
You have functions (machines that transform input values into output values, where the input values and output values can themselves be functions) that you apply on values to get a result (and any state is temporary and just an artifice of expressing how your function works).
I think "a computer" >>1 means is so-called Von Neumann-type computer.
Procedural programming needs global states, variables and substitutions like current computer architectures.
Functional programming also has values but they never change once they have been defined, and yet it works because of λ-calculus like >>13 said.
I recommend Haskell for Functional programming novices too.
Haskell is a bit idealistic language, but people can learn a lot for it.
Ruby. The Best of All EVER.
Simple. Beauty. Force.
get '/' do
Web-server with hello-world-main-page. 4 lines. :)
I can do that with Node.js, or any other framework out there. That is still stupid. If you don't understand why "my_whole_web_site_just_work();" is lame, please stop programming.
I know, I've been trolled once again :(
Such baseless novelties, try Nimrod, son.
State is easily reintroduced into functional programming with f-coalgebras. Then you model your computation as a function working on a state space S and several outcomes (bottom = no terminating or undefined), just the next state or an exception and the next state. This model also apply on java. From this model, functional languages are rather explicit with their state passing.
S[sub]t[/sub] -> bottom + S[sub]t+1[/sub] + S[sub]t+1[/sub] x E
Learn brainfuck, trust me. Its a great language and will teach you the fundamentals of a language like Assembly, but in a more complicated way, which is definitely better.
You have a memory (a bunch of memory locations with their values at some time t) that you manipulate with functions so that at time t+1, the values of those memory locations has changed and the set of stack memory locations has changed.
Instead the approach is:
You have procedures (machines that transform input values into output values, where the input values and output values can themselves be procedures) that you apply on values to get a result (and any memory is temporary and just an artifice of expressing how your procedure works).
Also you have unsafe IO procedures to call some devil functions because von neumann or something. It's not like someone forgot computer functions were jumps in the instruction pointer and not actual mathematical functions..
What's your favorite IDE/text editor when it comes to programming? Also, what's the setup in the banner up top? http://static.4-ch.net/images/boardtitles/programming.gif, that is.
JazzScheme's editor seems able to handle CL as well. I don't know how well that works though.
Rules them all.
gVim for both Windows and Unix. If I really needed to compile something on my Windows box, I have Cygwin installed with g++.
Is anyone Harverd or MIT?
Dunno if anyone's mentioned it, but you can change your keyboard bindings to switch the caps-lock key with the control key. It takes a little bit to get used to, but it makes much more sense, when you think about it. When's the last time you used caps lock (other than for cruise control) anyway?
nvi, for editing in general.
>i've just discovered this: http://ex-vi.sourceforge.net/
>it's much more lightweight than vim, and has the one feature i really wanted that nvi doesn't have: support for utf-8.
>i've been using nvi, but the lack of utf-8 support meant that i had to use some other editor (usually mined 2000) whenever i wanted to edit a utf-8 encoded file.
nvi has had UTF-8 support since 2000:
>Sven Verdoolaege added support for Unicode in 2000.
Know absolutely nothing about programming but want to learn etcetera...
Used computers all my life but know nothing about the codes inside them. I keep coming up with ideas for computer programs which are based on a few simple tasks or calculations which I think a computer could do but I have no idea how to implement them. I think I should get to the level of making a simple card game or something. Then work my way up to making scripts, something that could open up opera browser, search through a site for certain links, open them up and search for pieces of text and put them into a spreadsheet. That would be useful for my stock market research.
For now though I am a complete pleb and don't even know what software I need or how to take the first step. Here are some links I found that I will look at.
I started programming only 2 years ago, but I was trying to get into it for years before that. I just told him what eventually helped me get serious about it. I went through entire tutorial series about the basics of C, the basic of C++ and the basics of Java and every time I finished a series and just stood there saying "okay, now what?"
Having an achievable goal and visual results to your work is very encouraging
I recommend using precision magnets to manipulate the individual bits in your RAM and write programs in raw machine code. It's really hard to get the hang of, but once you master it, people like >>5 can't be snobs to you.
That or you can ignore them and learn in whichever way helps you stay motivated to keep practicing, which usually isn't low level programming now that there are perfectly good alternatives that are much easier to work with.
C# is also what the Unity game engine uses, which might be worth looking into if you're interested in making games.
You're exaggerating. A lot of shit in C isn't so difficult for someone just beggining, and if they're learning out of interest, they don't have to master bit operations immediately.
It sure is encouraging, but I like the shell interface, so I don't think of programs that run on a terminal as lowly goals.
And there you can get results fast using C or even asm.
The argument between you 2 has put some perspective on things.
Yes, it has been 12 days. I usually just go to sleep when I get home because of schooling and a part-time job but I think I found a way to mitigate the effects of ADD-PI and stop dawdling. I will probably test these suggestions tomorrow and have something more interesting to talk about.
If I don't follow your suggestion it is likely because I can't find the right software to download or something not that I'm taking sides. Also I now have a tripcode.
> in b4 someone makes their own tripcode and claims to be me
Lastly what do you guys think of this game, it is about transistors.
actually this will be my tripcode
>Maybe it could teach me to use "precision magnets to manipulate the individual bits in your RAM and write programs in raw machine code."
umm I don't think that was completely srs
I'd recommend "How to Design Programs", and if you'd like and have the time, you can supplement with "Structure and Interpretation of Computer Programs" lectures.
>Also I have heard from many sources that programming is more about constructing programs and less about memorizing code, this raises my confidence a little, assuming I am imagining what coding is like correctly.
The focus of How to Design Programs is on program design and construction, and the language it uses is very simple and requires no significant syntax memorization. It's also free and there's an IDE developed for it and the language it's based off of (Racket Lisp).
SICP is a highly-recommended book, but it's also very abstract and can be difficult, but it can be nice to watch the lectures and take notes and see how the ideas are used in HtDP. This is what I've been doing myself, I just started myself a few weeks ago.
I kind of wish there was some kind of beginner's programming IRC room or something for people like us.
learn to program by programming, duh
sicp is overrated abstract bullshite
this is a point that no one may contest
What makes you think that recursion vs. iteration and their benefits and disadvantages, the differences between the environmental and object-oriented models of programming, functional programming, and data-directed programming, and knowing how compilers work by writing your own are "abstract bullshite"?
At the risk of being too obvious, it DOES deal a lot with the structure of programming, and that's why I recommended it as a supplement to a more pragmatic or less abstract book if you have the time. You can always just read it afterwards.
We like Kareha here. What have you noticed in kareha? Have you made any hacks or otherwise made use of it?
I saw that Storlek used Kareha as a base for his blog in the past. This seems sane to me, and not all too hard to do. When you think about it, Kareha is (in essence) a community blog.
Entering "fusianasan" in the name field or "2ch-sep93" in config.pl's date field do two quite obvious things.
pseud0ch.css, interestingly enough, does not support italics by default.
Seriously though, why did you remove the dates? What purpose did that serve?
all posts on sageru.org are timeless classics.
I'd really like to see some people get together and work on Kareha and its CSS to make it all 2015 update.
update how? just remove the stuff that's there for compatibility with ancient browsers? switching from XHTML to HTML5? or do you mean make it ugly and hard to use by shuffling everything on the page around randomly and making everything big colored squares that you have to inspect closely to find anything?
S-expressions are a thing, you guys.
I guess you don't write Lisp. Semantic formatting is the antithesis of brevity, expressiveness, and beauty of code. S-expressions, on the other hand, deliberately make syntax not matter at all, by virtue of there being practically none.
If you want a layout-looking markup language then use markdown or whatever other shit is currently popular.
Shitty, hard-to-read syntax is not the same thing as no syntax.
You clearly don't Lisp.
Come back when you've even tried to use it.
> This SRFI descibes a new syntax for Scheme, called I-expressions, whith equal descriptive power as S-expressions. The syntax uses indentation to group expressions, and has no special cases for semantic constructs of the language. It can be used both for program and data input.
> I guess you don't write Lisp. Semantic formatting is the antithesis of brevity, expressiveness, and beauty of code. S-expressions, on the other hand, deliberately make syntax not matter at all, by virtue of there being practically none.
Why do so many LISPers lack basic reading comprehension skills?
When you read two sentences with the word ``semantic'' in, do you automatically assume that they have any relation to each other at all? Because those two didn't.
Semantic formatting includes significant whitespace. Absolutely nothing to do with special cases in syntax.
Come on guy, did you even try or were you just finding any excuse to make sweeping judgements on the internet?
So whether something is "semantic formatting" is determined by what characters it uses? Parentheses are okay, but spaces are evil? Even though S-expressions also use spaces in a syntactically significant way?
What are your (current) hobby projects? What languages or libraries are you using? How usable or complete is it? What makes what you're doing novel or great?
No need to be smug or anything, or get all angry at other people for using <thing you hate>. Just share what you're up to. Add a URL if it's public too, if you want.
I'll start. I'm writing a stack-based language in Racket for use in embedded devices. It's already got Hindley-Milner style type inference, it just needs to actually produce output.
I'm also planning a modal text editor that feels like vim and a music-making program somehow.
But enough about me. Let's get some actual content on the front page of /code/.
I've started a little handheld GPS tracking/plotting app/script...
Rather modest at the moment, just a save/load function + current path plot..
Uses Js / Droidscript
Fucking around with Haskell.
A raspberry pi motion camera that uploads photos to somewhere on the web.
I also want it to blink an LED every time a photo is taken but I don't know how to trigger that.
Just pretend he was trolling.
Is there any sort of easy-to-read guide or manual on the Game Boy and its instruction set (Z80?)?
Also, it's open source: https://github.com/grantgalitz/GameBoy-Online
It isn't very fast, but it's still very impressive.
I don't have one
"Freedom" only really has meaning in context. Freedom to do something, freedom not to have something done to you. On it's own it's an empty ideal.
Seeing as this is a programming board, I assume you mean "freedom" in a free software context, in which case my vote for free license goes to the MIT license. Simple and to the point, and not "copyleft" (which IMO is just trading one master for an arguably more benevolent one.)
Your opinion is not appreciated. GPLv3 is the only license. We don't need shitty companies. We need transparency. Freedom as in free. The end.
But what if I want the freedom to have my work ripped off and exploited for commercial gain by leading companies such as Apple?
That happens already on their side since they just ignore licences anyway, but if you really want such freedom, just upload your code on the interbutts without a licence.
In some countries, that's rather difficult. Luckily, the WTFPL covers such cases.
Freedom = being able to show Micro$oft, Apple and Stallman the middle finger whenever I want to.
It is my definition of freedom ^^