I have no idea how this would translate into the world of Windows though.
I have no idea how this would translate into the world of Windows though.
The two also don't compare. Quantum physics is different and more complex than ./configure && make && sudo make install. Also, the user doesn't have to learn any of this and can just make a "donation" if they prefer.
Remember: the internet was built by computer users. We have some of the most detailed documentation and most accessible learning materials of any discipline. The same cannot be said of computational chemistry, quantum physics, systems metabolomics, ...
your google-fu is weak my son.
Of course I don't begrudge a program having basic category theory as a prerequisite either (turns out the very basics are actually very simple!) so maybe I'm not truly representative.
I also dabbled in Haskell. Honestly, I struggled. There's a distinct possibility that I'm not that smart, but if I'm not, then there are a lot of people that aren't.
The first time I ran into the whole configure and make system, I just looked at the INSTALL file and followed the instructions. It was actually easier than some GUI stuff I had to do because I could basically copy the commands verbatim instead of having to look through a bunch of complicated screenshots.
It also took me a little bit of effort to get used to Haskell. But once I did, it was great. It really is a magical language; it combines all the benefits you normally hear about with a unique sort of expressiveness I haven't found in any other languages (even close ones, like OCaml, don't quite cut it, although they are awesome in their own ways).
The real breakthrough for me was implementing a simple Scheme interpreter in Haskell. There is a tutorial [1] that explains exactly how to do this; I found it very helpful. However, I am a little leery of suggesting it now because the code there doesn't always follow best practices. It's great for getting the right mindset, but you should probably not carry all the exact techniques over to your real code.
[1]: http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...
But it never works the first time, and then you have to figure out how to install this libsdl that's missing
And no, packaging name is a crapfest, between Debian based and RPM based, they all bring me to tears
Go on, try to install libsdl in Fedora. Oh, you see, there it is called SDL. And then you install it and it doesn't work, because you need the dev version. Or devel. Or maybe it's consolidated in a package with a different name. Or maybe it's split in 2 packages and that thing you need is in some god-forsaken package like libfoo-extras-nooneneedsthis-promise
When I was a complete and utter beginner I relied on all the above methods for support when I encountered seemingly insurmountable problems, and as a consequence I learned a lot and quickly. This was one of the best things that ever happened to me.
/home/rob/projects/gnu/gcc/configure -target=arm-linux-androideabi --host=i386-linux-gnu --build=i386-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --without-ppl --without-cloog --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp --enable-target-optspace --enable-initfini-array --disable-nls --prefix=/usr/local/android-toolchain --with-sysroot=/usr/local/android-toolchain/sysroot --enable-gold --with-pkgversion=Rob Savoye --disable-libquadmath --disable-plugin --enable-gold=default target_configargs=lt_cv_shlibpath_overrides_runpath=yes --enable-cxx-flags='-fexceptions -frtt
You say shelter, someone else says complete waste of time. I am actually for people building their own but if you don't recognize that some problems at some instances of dev are simply over complicated winding hacks that will not ever be used again... well. That just turns to the 'Holier than Thou' moments that look over pedantic to people that, while not lacking coding skills, will just be put off when contacting with this reality. And the n00bs, l33t talk, not so much.
Forums: "omfg search u fucken noob!!"
Documentation: Haha, what documentation?
Q&A sites: Find 1000 threads with no replies all asking your same question. Find 1 thread with your question, and then a reply - which says "Never mind, I figured it out."
IRC: "omfg rtfm!" - as a best case scenario. More likely, -- leeter sets mode +b noob@noobisp.net / -- noob has been kicked by leeter (learn to rtfm)
Google: See Q&A site
Mailing lists might work as a resource. Reading the code might work. And sure, you might have some success with these methods, but pretending like you can just send someone trying to learn a piece of software into any of those places and expect them to get answers easily is laughably naive.
I also did forget to mention mailing lists; I knew I was missing something.
However, if you're doing something really uncommon, or your problem is unusual in some way, there may be no remedy beyond building the required technical knowledge to solve it yourself. Sometimes that's years beyond you.
Compilations with lots of flags are a great example of that. If your particular system needs a flag that isn't there, Google isn't much help. And if you don't know what those flags do, you may not be able to learn enough to solve your problem in a reasonable amount of time.
You can't even get them to learn a little bit about make, but then again some of them glamorize XML as the best thing ever.
Someone are just the best programmer in Windows/Visual Studio environment. And being "top-notch" should not be reserved to only those who use command line.
What's the point for them to learn something like this, if they don't see how this is going to help them in what they do?
Spend an hour downloading Visual C++ Express (assuming it works in express, otherwise buy the professional version). Try to fix any build errors (not an easy task if you're not a programmer). Install NSIS and any installer dependencies. Make sure the binary is in the right place. etc.
[1] http://neowiki.neooffice.org/index.php/NeoOffice_Build_Instr...
If you are even slightly embedded in dependency hell, then nearly impossible, spending a reasonable amount of time.