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

Pages: 1-4041-

your favorite programming language

Name: Anonymous 2013-04-18 22:06

mine is Python. simple yet powerful. you can do anything you want with it web, math, science, graphic apps anything except may be OS programming/drivers/ orlow level stuff ;)

what's yours?

Name: Anonymous 2013-04-18 22:12

English

Name: Anonymous 2013-04-18 22:13

                                 `
>2013
>not coding in LISP

Name: Anonymous 2013-04-18 23:28

>>3
There is no love for parens.

Name: Anonymous 2013-04-18 23:39

benis :--DDDDDDDD

Name: Anonymous 2013-04-19 2:49

Javascript

Name: Anonymous 2013-04-19 7:38

>>6
this

Name: Anonymous 2013-04-19 10:19

>python

Name: Anonymous 2013-04-19 11:11

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.
- Broken scoping: Python, like other many 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 is 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? Such shortsighted scoping design leads to Python's faulty package system, which exposes everything, so that, for example, typing time.sleep=4 instead of time.sleep(4) would break the system-wide sleep function, while accidentally assigning some method to time.sleep, and you won't even give a runtime error - just a hard to trace bug. Moreover, dynamic scoping impedes encapsulation and compilation, so everything you write will be open source: no FASLs, DLLs or EXEs, while 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.
- Inconvenient syntax: FIOC or 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 transmitting python code through a web post or email breaks 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. And why is there ":" when code almost always has a newline after it? Python's whitespace indentation 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)]), while logical connectives being lost in a pile of other symbols, like "and" in "if y > 0 or new_width > width and new_height > height or x < 0". Instead of usual "fold" and "map" functions, Python uses "set comprehension" syntax, which has a large collection of underlying linguistic and notational conventions, each with it's own variable binding semantics: 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]).
- 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. Creating an object just to call a function, like ''.join(map(str, r)), is just annoying sign of bad language design. No continuations or even tail call optimization: "I don't like reading code that was written by someone trying to use tail recursion." --Guido
- Inconsistent type system: no Numerical Tower (nor even rational/complex numbers), meaning 1/2 would produce 0, instead of 0.5, leading to subtle and dangerous errors. Arithmetics on strings is surprising at best: "2" * 3 is "222", "2"+"3" is "23", while "2" * "3" and "2"+3 are type errors. Multiple false values: "", [], (), False, 0, 0.0 - all auto-coerce to false, but 0==False and 1==True, while ""!=False and ()!=False; worser, True/False auto-coerce to integers, so ['no', 'yes'][False] won't give an error, although ['no', 'yes'][0.0] does give an error. Why have both dictionaries and objects? Why have both types and duck-typing? 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 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. 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. 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 shows that OOP was bolted on. Poor UTF support and unicode string handling is somewhat awkward.
- Poor performance: 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. 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 has no well-defined and stable API, make life easier for Guido and tough on everybody else - that's the real cause of Python's "version hell". Python has inherited the installation mentality 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". 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.
- 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)
- Author of Python, Guido van Rossum, is Jewish, so if you dislike Jewish omnipresence and dominance, boycott Python.

Name: Anonymous 2013-04-19 11:51

nimrod

Name: Anonymous 2013-04-19 11:56

>>10
nimrod
are you sure he is aryan?

Name: HEARSAY MY ONUS 2013-04-19 14:49

``HEARSAY MY ONUS'' MOTION FAN

Name: Anonymous 2013-04-19 15:14

I remember GFA-Basic as being on to something. Kinda miss it.

Name: Anonymous 2013-04-19 15:23

Java or C#. C if only for wannabe faggots
/thread

Name: Anonymous 2013-04-19 16:01

>>9
I am a Javascript expert, and I have done a lot of enterprise projects in the language and will try to recall specifically why it is better than Python. I will contrast all of the points you have raised:
- Sane scoping: Javascript does not magically create local variables behind your back. They are declared explicitly so you know exactly what their scope is, and you are assured you are not accidentally trashing another variable with the same name.
- Battle-tested syntax: Javascript continues the tradition of delimiting blocks with curly braces, ensuring your code is never ambiguous. The best programmers stand by this syntax as the most optimal and easy to understand system in use. The most successful languages owe everything to this style of syntax. Python programmers instead have to suffer when their whitespace-sensitive code is destroyed due to tooling errors, and cannot be reformatted automatically.
- Exceptional support for functional programming: Javascript supports everything that makes a functional language functional. There is a reason why it's often called a Scheme dialect. Unheard of support for functional paradigms and closures in what is superficially an imperative language. Javascript leads the race in this field, exemplified by frameworks such as node.js which show the true power of functional programming only available in Javascript. Anonymous functions are fully supported unlike the pitiful lambdas that Python provides.
- Javascript is completely orthogonal: as mentioned earlier, its reliance on functional programming gives innovative capabilities to objects. Objects form the basis of practically everything in a way that is truly innovative. Objects, being very powerful dictionaries, have unparalleled descriptive power in Javascript and represent everything from data records to complex class systems. Python does not even come close to this kind of expressiveness, with its crippled dictionaries.
- Blazing performance: Javascript is by far the fastest dynamic language ever. It tops the charts at the CLBG, completely destroying Python and making claimed-to-be-fast languages like Lua and Go look like total jokes to the programming community. There's a reason why web browsers continue to use Javascript instead of settling for inferiority. Emerging projects like asm.js show just what a competently-designed dynamic language is capable of. You don't see that kind of awesomeness from any of those other toys. Did I mention just how concurrent it is? I'm sure you've heard of AJAX by now, it's years old!
- Javascript needs no API, because there is no reason to use another language. Web browsers are the future and Javascript is the new C. Before long CPUs will run Javascript natively and there will be no point in even implementing other languages on top of it, because they will not compete. People laugh at JSLinux now, but within 5 years it will be their only choice of operating system and they will repent and drool over the possibilities only available with the Javascript platform.
- Javascript drives innovation, with new features such as coroutines and weak maps making their way into the next version. It will be unique in its support for tail-call optimization in a mainstream language. In fact, Javascript is showing how ``pythonic'' (LOL) features can be improved when people who actually know what they are doing, and who respect previous research, get their hands on them.
- Author of Javascript, Brendan Eich, supports strong family values and has backed Prop 8. Do you really want to be seen as an enemy of the traditional family?

Name: Anonymous 2013-04-19 16:04

>>15
i agree java ksript is awes0me butt about the fastness, i disgaeree, it may be fast for an non compiled language but thats like saying its the worlds tallest dwarf. i wish javaskript could be compiled. theen it wud be the most awesome shit ever. until then im restrickted to shit like c and asm coz of the speedyness purely.

Name: Anonymous 2013-04-19 16:17

>>15
JavaScript is the programming language that Pablo Picasso would have invented. "Broken" is the single word, describing JavaScript.
1. Broken behavior across competing implementations: it is virtually impossible to use JS to do anything robust on the client side. JQuery tries to amend this, but inconsistency is still there.
2. Broken type system: it is weak and its automatic coercion astonishes: "1"+"2"=="12" and "1"+1=='12', but "1"-2==-1, "2"*"3"==6, and (x="1",++x)==2; 0==-0, but 1/0!=1/-0; [123]==123, but [123][0]!=123[0]. Even worse: [0]==false, but ([0]?true:false)==true, so (a=[0], a==a && a==!a)==true;  Following statements are also true: []==![], Math.min()>Math.max(), " \t\r\n"==0, ",,,"==Array((null,'cool',false,NaN,4)), new Array([],null,undefined,null)==",,,", Array()==false, ''!='0', 0=='', 0=='0', false!='false', false=='0', false!=undefined, false!=null, null==undefined, NaN!=NaN, []+[]=="", []+{}=="[object Object]", {}+[]==0, {}+{}==NaN, despite (typeof NaN)=="number", so ("S"-1=="S"-1)==false. Given function f(n) {return n&&+n|0||0;}, we have f("1")==1, f("1.2")==1, f("-1.2")==-1, f(1.2)==1, f(0)==0, f("0")==0, f(NaN)==0, f(1/0)==0. No numerical tower or even obvious integer types: the only numeric type supported is an IEEE754 double-precision float, allowing for 9999999999999999==9999999999999999+1. Hacks like `(x+y)|0` are employed to strip rational part.
3. Broken default value: whereas most languages have one universal singular value (null/nil/Void/whatever), JavaScript has four: "false", "null", "void" and "undefined", producing confusing and irregular semantics. Then `undefined` is not actually a reserved keyword, so undefined="broken" easily breaks code, although `void 0` can be used instead of `undefined`; jQuery uses kludge like (function (undefined) {...}()) to ensure that undefined is undefined. Other redefinable symbols are NaN, Infinity, and the constructors for the built-in types.
4. Broken lexical scoping: unlike C/C++/Java/C#/etc, where variables introduced in an anonymous block within a function are only valid within that block; in JavaScript such variables are valid for the entire function. JavaScript employs unintuitive process called declaration hoisting, in which all function and variable declarations are moved to the top of their containing scope. If a variable is declared and assigned in one statement then the statement is split into two, with only the declaration getting hoisted. This produces a lot of subtle bugs, like for example non-obvious hiding of outer variables or `f` in `var f = function() {…}` being present as undefined, while `function f() {…}` would always be defined. Every script is executed in a single global namespace that is accessible in browsers with the window object.
5. Broken syntax: semicolons are optional, but it only makes life harder, because newline can accidentally take place of a semicolon, in effect `return{a: "hello"};` and `return\n{a: "hello"};` (where '\n' is newline) mean completely different things: '\n' gets parsed as ';', resulting into just "return;" Finally, crippled syntax impedes functional programming: )}();)}();)}();)}();
6. Broken standard library: most built-in functions, given an invalid input, don't produce error or exception, but silently return some default, like new Date('garbage'), or even produce undefined behavior: parseInt("07")==7, but parseInt("08")==0 or parseInt("08")==8, because "the implementation may, at its discretion, interpret the number either as being octal or as being decimal". Even worse, parseInt('fuck') gives NaN, but parseInt('fuck', 16)==15 and parseInt(null, 34)==939407
7. Broken arrays: new Array() produces empty array; new Array(2,3) produces array with 2 and 5 as its elements; new Array(5) does not produce array with 5 as its single element; instead, it returns a 5-element array. In JavaScript an array with 2 elements can have length of 7, while an array with 7 elements can have length 2, because length property always returns the last numeric index, plus one. JavaScript has no out of bounds error: you can freely retrieve an element at any index and no error will be produced, even if element is undefined. JavaScript provides no reliable way to iterate array by index, instead for(var X in Xs) gives elements in completely undefined order.

Name: Anonymous 2013-04-19 16:20

>>17
haha, all of those are a problem 4 u only coz ur a sheep that thinks w/ teh 3 lawz of thought ur le mind is forsed 2 attahc everywhere at once
free ur mninnd and u wil no longer believe in man made logik but divine god like logik and ull be thinking in javaskript in no time
js is not for le plebs who use a "bible" of logik instead of le natural real logick

Name: Anonymous 2013-04-19 16:26

>>18
8. When faced with criticism, all JavaScript apologists spit generic arguments, starting with banal ad-hominem, which speak for themselves: "all languages are turing complete", "languages are just tools", "no language is perfect", "good developers can write good code in any language", "JavaScript was never intended to solve problem X", "JavaScript isn't the problem, bad programmers are", "products X was built using JavaScript, so JavaScript is good enough", "there are two kinds of languages: the ones complained about and the ones nobody uses", "JavaScript is free, hosting is available, JavaScript programmers are cheap", "clients don't care what language is used", "JavaScript has great community, we are like family", "if you do X then problem Y would be less noticeable", and a myriad of variations.

Name: Anonymous 2013-04-19 16:27

>>17
i cud ecksp-Lain moast of thoase Butt im rly not bored enuff 2 do dat so hear are some:

"1"+"2"=="12"
no shit sinse the plus op works different 4 strings and le numbahs

but "1"-2==-1, "2"*"3"==6, and (x="1",++x)==2
minus and * translate string to le numbah (y doesnt plus? coz it werks 4 both stringz n leh numbahs)

0==-0, but 1/0!=1/-0;
lern 2 fpu, this is not even js related

[123]==123, but [123][0]!=123[0]
[number] with only 1 member has special meaning in js, ur fault for not undertsanding teh language

Name: Anonymous 2013-04-19 16:30

Name: Anonymous 2013-04-19 16:35

>>21
Did JS molest you?

Name: Anonymous 2013-04-19 16:36

>>22
Yes. I'm forced to use it.

Name: Anonymous 2013-04-19 16:40

>>17
semicolons are optional, but it only makes life harder, because newline can accidentally take place of a semicolon, in effect `return{a: "hello"};` and `return\n{a: "hello"};` (where '\n' is newline) mean completely different things: '\n' gets parsed as ';', resulting into just "return;"

but thast wrong, u fukken retard
further evidense that u do not understand le js at all and are critizing something u have not even put any effort into analyzing

Name: Anonymous 2013-04-19 16:42

Name: Anonymous 2013-04-19 16:42

Name: Anonymous 2013-04-19 16:45

>>25
>>26
locked by Jeff Atwood♦ Apr 24 '12 at 23:10
This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: FAQ.

Name: Anonymous 2013-04-19 16:45

>>25,26
defensive programming shit, no wonder you guys cant code asm since you cannot even code analytically when you haveare using the easiest language ever

Name: Anonymous 2013-04-19 17:01

JavaScript works, therefore it isn't stupid. The only stupid thing about it is plebs who can't code it (ewaresultz in c0de liek diss: <a href="javascript:blahblaah();"> enjoy opening that in a new tab you fucking faggot face

Name: Anonymous 2013-04-19 17:26

No love for statically typed functional languages? I love me some Haskell. I have to use Scala at work and the number of types I have to explicitly write out in my code is appalling.

Name: Anonymous 2013-04-19 17:31

>>30
Statically typed is awesome,butt in C you can make your own typezz!!! using structs! make everything one type if u want! the onyl problem is that i have no idea how to define the () opeartor (funcktion call) since my compiler thiknks im trying to define the typecall op, i can use [] instead for the same effect but id really want ().

Name: Anonymous 2013-04-19 17:45

>>31
who needs C/C++, when you have Lisp?


class cons
. private
. . void * m_CAR
. . void * m_CDR
. public
. . cons void * CAR
         void * CDR
. . . m_CAR = CAR
. . . m_CDR = CDR
. . void * car
. . . return m_CAR
. . void * cdr
. . . return m_CDR


. switch x
. . case 0 :fall-through
. . . printf "hello"
. . case 1
. . . printf "world"
. . default
. . . error "only 0 and 1 allowed"

Name: Anonymous 2013-04-19 17:49

>>32
Lisp is 2confusing4me and i do not really feel like learning a new language. I'm sure as soon as I figure out the () problem I'll write the universe

Name: Anonymous 2013-04-19 17:50

>>32
Get a job, hippie.

Name: Anonymous 2013-04-19 17:57

Scala.


def tryGetResult: OptionT[({type l[a]=StateT[({type l[a]=Kleisli[({type l[a]=EitherT[IO, Error, a]})#l, Connection, a]})#l, AppState, a]})#l, Result]

Name: Anonymous 2013-04-19 18:02

Haskell

Name: Anonymous 2013-04-19 18:47

I want a neural net programming language where everything is done using neural nets and the "programming" is only adjusting certain numeric variables and coefficients. Of course it'd somehow have to be Turing-complete, but our brains are Turing-complete and they're neural nets, so why not?

Name: Anonymous 2013-04-19 18:51

Name: Anonymous 2013-04-19 18:52

Name: Anonymous 2013-04-19 19:39

>>23
My condolences, if it were a perfect world, javashit wouldn't exist. A world without jews, perfect.

Name: Anonymous 2013-04-20 15:51

>>32
Will that actually work? using the middle-of-cons token like that...

Name: Anonymous 2013-04-20 16:56

>>34
lisp
job
lel

Name: Anonymous 2013-04-20 17:15

Looks like someone forgot why Lisp sucks.

http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

Name: Anonymous 2013-04-20 17:23

>>43
For those who need a TL;DR:

- Lisp programmers are all self-centred assholes.
- Lisp programmers can never agree on anything. It's so easy to write, say, an object system in Lisp that everyone writes their own.
- Therefore, nothing of importance gets written in Lisp any more, because no two people can agree on how to code anything.

Name: Anonymous 2013-04-20 17:23

check em

Name: Anonymous 2013-04-20 17:24

>>45
ahhaha failed so hard faggot
you can't even get dubs on a textboard. congratulations on the worst post in the history of the internet

Name: Anonymous 2013-04-20 17:34

>>46
>I remember once going to see [Ramanujan] when he was ill at Putney. I had ridden in taxi cab number 45 and remarked that the number seemed to me rather a dull one, and that I hoped it was not an unfavorable omen. "No," he replied, "it is a very interesting number; it is the smallest triangle number expressible as the sum of two squares."

Name: Anonymous 2013-04-20 23:29



Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?

 Mail me at jeremiahgoldstein@hotmail.com

 25$ a pop


Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?

 Mail me at jeremiahgoldstein@hotmail.com

 25$ a pop


Searching for legit Microsoft Product keys, Windows 8,7,Studio,Server etc.?

 Mail me at jeremiahgoldstein@hotmail.com

 25$ a pop

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