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

List all programming resources

Name: Anonymous 2013-03-17 20:30

Use this thread to list all your programming resources, interesting projects, and things that related to /prog/ culture. I'll email moot later, when it's done and maybe we can get a sticky.

Name: Anonymous 2013-03-18 9:02

What do I read to learn how to ``sicpquote?''
>>-,-,-,-

Name: Anonymous 2013-03-18 9:03

Name: Anonymous 2013-03-18 9:10

>>26

If you can't do scheme, you are not a programmer.
If you haven't read SICP, you are not a programmer.
If you haven't done your exercises, you are not a programmer.

It doesn't matter, you learn differently. It doesn't matter, you `programmed` in php when you were 12.

You are not a programmer.

Now, please get the fuck out and don't come back until you can program.

Name: Anonymous 2013-03-18 9:24

>>26
The programming community does not revolve around two obscure books about LISP.
Yep! Some programmers also read OnLisp and PCL.

Retarded programmers read RWH and TAPL.

Math-fags read AoCP.

Name: Anonymous 2013-03-18 9:27

>>6
https://www.khanacademy.org/science/computer-science
Python Lists
For Loops in Python
While Loops in Python


Python is not as good as it is made out to be, in other words it suffers from a degree of hype. I'll try to argue this point. Potential detractors of the language usually lack the experience to criticize it authoratively. This is more true for Python as it is not (yet) common that people are coerced (by work, school) into learning and working with the language. So the detractors are few and drowned out by the vocal supporters.

The proponents of Python cite 'indentation' as the worst problem, this is a strawman argument 'this is the worst problem and its not really a problem'. This argument has been voted up presumably by people who like the language, because it is certainly not a good reason not to use Python.

I am far from an expert at Python, but I have done a couple of semi-serious projects in the language and will try to recall specifically what I didn't like.

- Everything you write will be open source. No FASLs, DLLs or EXEs. Developer may want to have control over the level of access to prevent exposure of internal implementation, as it may contain proprietary code or because strict interface/implementation decomposition is required. Python third-party library licensing is overly complex. Licenses like MIT allow you to create derived works as long as you maintain attrubution; GNU GPL, or other 'viral' licenses don't allow derived works without inheriting the same license. To inherit the benefits of an open source culture you also inherit the complexities of the licensing hell.
- Installation mentality, Python has inherited the idea that libraries should be installed, so it infact is designed to work inside unix package management, which basically contains a fair amount of baggage (library version issues) and reduced portability. Of course it must be possible to package libraries with your application, but its not conventional and can be hard to deploy as a desktop app due to cross platform issues, language version, etc. Open Source projects generally don't care about Windows, most open source developers use Linux because "Windows sucks".
- Probably the biggest practical problem with Python is that there's no well-defined API that doesn't change. This make life easier for Guido and tough on everybody else. That's the real cause of Python's "version hell".
- Global Interpreter Lock (GIL) is a significant barrier to concurrency. Due to signaling with a CPU-bound thread, it can cause a slowdown even on single processor. Reason for employing GIL in Python is to easy the integration of C/C++ libraries. Additionally, CPython interpreter code is not thread-safe, so the only way other threads can do useful work is if they are in some C/C++ routine, which must be thread-safe.
- Python (like most other scripting languages) does not require variables to be declared, as (let (x 123) ...) in Lisp or int x = 123 in C/C++. This means that Python can't even detect a trivial typo - it will produce a program, which will continue working for hours until it reaches the typo - THEN go boom and you lost all unsaved data. Local and global scopes are unintuitive. Having variables leak after a for-loop can definitely be confusing. Worse, binding of loop indices can be very confusing; e.g. "for a in list: result.append(lambda: fcn(a))" probably won't do what you think it would. Why nonlocal/global/auto-local scope nonsense?
- Python has a faulty package system. Type time.sleep=4 instead of time.sleep(4) and you just destroyed the system-wide sleep function with a trivial typo. Now consider accidentally assigning some method to time.sleep, and you won't even get a runtime error - just very hard to trace behavior. And sleep is only one example, it's just as easy to override ANYTHING.
- Crippled support for functional programming. Python's lambda is limited to a single expression and doesn't allow conditionals. Python makes a distinction between expressions and statements, and does not automatically return the last expressions, thus crippling lambdas even more. Assignments are not expressions. Most useful high-order functions were deprecated in Python 3.0 and have to be imported from functools. No continuations or even tail call optimization: "I don't like reading code that was written by someone trying to use tail recursion." --Guido
- Python's syntax, based on SETL language and mathematical Set Theory, is non-uniform, hard to understand and parse, compared to simpler languages, like Lisp, Smalltalk, Nial and Factor. Instead of usual "fold" and "map" functions, Python uses "set comprehension" syntax, which has overhelmingly large collection of underlying linguistic and notational conventions, each with it's own variable binding semantics. This, in effect, makes Python look like an overengineered toy for math geeks. Good luck discerning [f(z) for y in x for z in gen(y) if pred(z)] from [f(z) if pred(z) for z in gen(y) for y in x]. In addition, you will enjoy cryptic expressions like z(*z(*m.i())[::-1]).
- Forced Indentation of Code (aka "off-side" rule) impedes using CLI, automatically generating Python code and moving around large code blocks. Editing Python code requires special editors (forget about Word/Notepad), that expand tabs into spaces, while sharing code through a web post or email will most likely break indentation. Absence of block-terminator is so utterly confusing, that you'll find yourself ending blocks with #endif anyway. It's painful to deal with other things that need indenting, such as large SQL queries, or HTML when you're using things like mod_python.
- Python hides logical connectives in a pile of other symbols: try seeing "and" in  "if y > 0 or new_width > width and new_height > height or x < 0".
- Python indulges messy horizontal code (> 80 chars per line), where in Lisp one would use "let" to break computaion into manageable pieces. Get used to stuff like self.convertId([(name, uidutil.getId(obj)) for name, obj in container.items() if IContainer.isInstance(obj)])
- Quite quirky: triple-quoted strings seem like a syntax-decision from a David Lynch movie, and double-underscores, like __init__, seem appropriate in C, but not in a language that provides list comprehensions. There are better ways to mark certain features as internal or special than just calling it __feature__. self everywhere can make you feel like OO was bolted on, even though it wasn't. Arithmetics on strings may surprise you: "2" * 3 is "222", "2"+"3" is "23", while "2" * "3" and "2"+3 are type errors. Creating an object just to call a function, like ''.join(map(str, r)), is just annoying.
- Python has too many confusing non-orthogonal features: references can't be used as hash keys; expressions in default arguments are calculated when the function is defined, not when it’s called. Why have both dictionaries and objects? Why have both types and duck-typing? Why is there ":" in the syntax if it almost always has a newline after it? The Python language reference devotes a whole sub-chapter to "Emulating container types", "Emulating callable Objects", "Emulating numeric types", "Emulating sequences" etc. -- only because arrays, sequences etc. are "special" in Python. Subtle data types (list and tuple, bytes and bytearray) will make you wonder "Do I need the mutable type here?", while Clojure and Haskell manage to do with only immutable data.
- Python's GC uses naive reference counting, which is slow and doesn't handle circular references, meaning you have to expect subtle memory leaks and can't easily use arbitrary graphs as your data. In effect Python complicates even simple tasks, like keeping directory tree with symlinks.
- Patterns and anti-patterns are signs of deficiencies inherent in the language.  In Python, concatenating strings in a loop is considered an anti-pattern merely because the popular implementation is incapable of producing good code in such a case. The intractability or impossibility of static analysis in Python makes such optimizations difficult or impossible.
- Problems with arithmetic: no Numerical Tower (nor even rational/complex numbers), meaning 1/2 would produce 0, instead of 0.5, leading to subtle and dangerous errors.
- Poor UTF support and unicode string handling is somewhat awkward.
- No outstanding feature, that makes the language, like the brevity of APL or macros of Lisp. Python doesn’t really give us anything that wasn’t there long ago in Lisp and Smalltalk. "This is a hobby project and I neede my time for other things…" --Guido van Rossum (http://1997.webhistory.org/www.lists/www-talk.1993q1/0060.html)

Name: Anonymous 2013-03-18 9:41

I know your type >>1-san-sempai-kun-sama[i]![/!]
I too lift weights, drink beer and write code!
No longer the domain of nerds and long haired faggots with LISPs, programming is now BROGRAMMING

http://www.businessweek.com/articles/2012-03-01/the-rise-of-the-brogrammer

I'd shout you all a beer but the TCP/IP protocol1 won't allow it LOL :D

[1]or any other of the network protocol layers; or my boss LOL what a fukken tightarse!!

Name: VIPPER 2013-03-18 9:59

>>1
maybe we can get a sticky.
AHAHAHAHAHAHAHAAHAHAHAHAHAHA

Moderation on /prog/, oh my.

Also for the dudes here saying /prog/ has always been this shitty: yes /prog/ indeed was always a shithole, but it wasnt this bad.
Back then in between SICP spam and other meme spouting threads there were decent discussion once in a while.
Now its pretty much all that JEWS crap that you can find on nearly every trailer trash shitbag website out there.

Name: Anonymous 2013-03-18 10:09

>>47
I hate antisemites, call the moderators!11 My mom was a holocunt survivor!111
Shalom, Hymie!

Name: Anonymous 2013-03-18 10:17

The great thing about mods is that they're all power hungry chucklefucks who won't do a good job of running the place.
I'd rather have the ordered, structured, regexp compatible speech of Nikita Sadkov than the totalitarian control of speech that a mod would introduce. I can go elsewhere for that, like the imagereddits or any other place on the net for that matter.

Name: Anonymous 2013-03-18 10:20

/prog/ is in a great state now compared to how it was throughout 2011. There's actual programming discussion now, the shitposting has become more subdued and the offtopic discussion has turned somewhat thoughtful again.

There was a time when the only half-decent threads we could have were meta threads about how /prog/ was dying.

Name: Anonymous 2013-03-18 10:24

>>50
/prog/ was dying.
is it dead already?

Name: Anonymous 2013-03-18 10:39

>>48
Who are you quoting?

Name: Anonymous 2013-03-18 10:44

Name: Anonymous 2013-03-18 10:45

>>52
lrn2imply

Name: Anonymous 2013-03-18 10:46

>>51
I wouldn't say there's much continuity between pre-2011 /prog/ and 2012-onwards /prog/

Name: Anonymous 2013-03-18 10:49

>>53
Always knew the whole movie had some Jewish merchant theme to it.

Name: Anonymous 2013-03-18 11:50

>>54
Fuck off back to /g/, the ">leeeeeeeeeeeel implying XDDDDDDDDDDDD" ``memes'' is not used here and its usage only shows your lack of maturity.

Name: Anonymous 2013-03-18 15:10

>>40
In >>38's world, most languages are Lisp derivatives.

Name: Anonymous 2013-03-18 16:13

>>40
Sorry, I meant most decent languages

Name: Anonymous 2013-03-18 16:27

>>53
slut

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