|
Python is probably a better first language than C#. The syntax is easier, not everything needs to be inside of a class, dynamic typing...
|
|
|
|
|
Python? BAH! That's for pussies who couldn't hack it in Assembler as their first language!
|
|
|
|
|
I vote Whitespace as the simplest and most understandable language for beginner
|
|
|
|
|
With tab size = 1.
|
|
|
|
|
Kent Sharkey wrote: Discuss
I don't think he has a clue as to what he's talking about.
First off, he's confusing whether a programming language is a good first language with how a language is taught. If C is taught so that "people with no prior experience [are] struggling", then that is more the fault of the teacher than the language. I could argue that Logo is the best first programming language. In fact, years ago I wrote a visual Logo (Turtle Graphics) program on a C-64 that was so intuitive we had 6 year olds in the lab writing programs that included animation, sound, looping, etc.
And then there's this lovely statement:
It's a high level, dynamic (and dynamically typed) programming language, featuring an expressive syntax that enhances code readability.
What a load of sh*t. Given:
def contains(numbers, value):
Do tell me, what type does this function return? What are numbers? What is value? Sure, to the experienced programmer, it should be obvious that this function returns a boolean and, being dynamically typed, numbers are probably an array of numbers and value is some number of the same type.
The amusing thing about his example is that it would work equally well with an array of strings!!!
So. More readable? Not in my book.
Expressive? Well, yes, if you go for the "I'm so expressive that when I mean "number" you don't actually have to give me numbers, you can give me strings, objects, functions, anything you want!
Dynamic typing? That's supposed to be a good thing? All I've seen is that it results in confusion. I can't even remember the types that I'm supposed to pass in to my Ruby on Rails functions, and I wrote the damn code! Is it an array? What's it an array of? What does it return? Dynamic typing sounds great but in practice it slows down code development and maintenance.
High level? That's also supposed to mean that it's better? Not necessarily!
The problem with the author's perspective is that he's coming at this from the position of an experienced (though I should use that term loosely) developer and failing to see that the process of learning a programming language has actually very little to do with the language.
"High level", "expressive", "dynamic", "readability" - those are all terms that no novice would even understand what they mean with regards to coding and they should not be used to demonstrate the superiority of a computer language as a first primer in programming.
Marc
|
|
|
|
|
To learn programming you need no language.
IMHO, Python has a messed-up syntax that can be compared maybe to assembly...
The fact, that people with no prior experience can learn a language faster tell nothing about the strength of that language - as people with no experience are no challenge for any programming language...
Dynamic typing is a definitive dis-advantage, and specifically in for readability (you can't manage an enterprise level application when you have to look-up every minute what type the API you are using returns to you).
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is (V).
|
|
|
|
|
|
Mihnea DB says: I feel that the popular languages that use the curly brace syntax are old languages that stuck, not new ones.
Again, I have nothing against it. I'm just saying that I've seen tons of newbies writing 300 char lines and programs that were not indented (at all!), and something like Python's syntax would be helpful to them. I think he's stuck into the mindset of clean code. They utilize curly braces because they clearly define scope, so even if you don't indent and things look ugly, you can still clearly trace to the end of a scope. Yes debugging a missing brace could be difficult, but not with today's tools. Using space indentation could arguably be hard to debug as well if you're missing a single indent somewhere in a long code file. If they aren't indenting, then he's teaching them wrong.
What's important for new programmers is to learn from ground up and not cut corners (using a language that cuts out curly braces is cutting corners IMO). Cleanliness is good, but readability is even better. He mentions this as powerful syntax:
Quote: evens = [x for x in numbers if x % 2 == 0] Powerful yes, but good for new programmers? No. Just reading that out loud hardly even makes sense. How does a new programmer know what type this returns? This is an example where C# would have been way better for newbies (using a foreach loop and assigning back to a new list is a lot more readable).
|
|
|
|
|
Silvabolt wrote: What's important for new programmers is to learn from ground up and not cut corners (using a language that cuts out curly braces is cutting corners IMO). Cleanliness is good, but readability is even better. He mentions this as powerful syntax:
Quote: evens = [x for x in numbers if x % 2 == 0] Powerful yes, but good for new programmers? No. Just reading that out loud hardly even makes sense. How does a new programmer know what type this returns? This is an example where C# would have been way better for newbies (using a foreach loop and assigning back to a new list is a lot more readable).
Or even, using LINQ goodness, one of the following, which may be closer to the original:
The readable version:
var evens = from n in numbers
where n % 2 == 0
select n;
The techie version:
var evens = numbers.Where(n => n % 2 == 0);
Both of which remain more readable than the Python version.
(Edited for indentation)
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Both linq samples also fail SilverBolt's "Quote: How does a new programmer know what type this returns?
Other than that I would disagree they they are significant;y more readable
Quote: evens = [x for x in numbers if x % 2 == 0]
vs
Quote: var evens = numbers.Where(n => n % 2 == 0);
I think I would find the former more obvious if I was a complete newbie.
vs
Quote: var evens = from n in numbers
where n % 2 == 0
select n;
Which I would find more obvious - but then I don't know Python so don't know if you could write it more legibly in that language,.
I'm not saying that Python would be a good 1st language to learn - I don't know it - but I don't think your linq examples show that C# would be any better
MVVM # - I did it My Way
___________________________________________
Man, you're a god. - walterhevedeich 26/05/2011
.\\axxx
(That's an 'M')
|
|
|
|
|
Syntactic whitespace was an abomination when COBOL and FORTRAN were invented; but it's designers can be forgiven both due to ignorance and due to the fact that they were working with computers less capable than a modern day $10 digital watch. Python's creators have no such excuse.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
While I find the idea of describing developers as artists sound, I’d like to take it one step further. I’d prefer that developers be perceived more as artists than engineers, or, heaven forbid, assembly line workers. However, I think there’s a linguistic subtlety here that can help us even better understand developers. We will write no code, before its time
|
|
|
|
|
Describing developers as artists is nothing short of pretension.
|
|
|
|
|
Kent Sharkey wrote: We will write no code, before its time
Damn right! I need a nap first.
|
|
|
|
|
Nokia shareholders have approved a deal allowing Microsoft to purchase the Finnish smartphone maker’s Devices and Services unit. Of the shareholders surveyed, 99.7 percent who participated in the vote agreed with the Microsoft sale, representing around four-fifths of Nokia's shares, according to the Financial Times. One step closer to "Windows Phone 9 360, Powered by Nokia Lumia Technology"
|
|
|
|
|
Nokia needs Microsoft. Who else would be stupid enough to want to buy Nokia and who would be stupid enough to do so?
Better to sell for a dollar than sit miserably trying to sit on and hatch a penny.
If there is one thing more dangerous than getting between a bear and her cubs it's getting between my wife and her chocolate.
|
|
|
|
|
UK Gets Google, Microsoft to Step Up Online Child Porn Fight
technewsworld.com[^]
// ♫ 99 little bugs in the code,
// 99 bugs in the code
// We fix a bug, compile it again
// 101 little bugs in the code ♫
|
Tell your manager, while you code: "good, cheap or fast: pick two. "
|
|
|
|
|
Google has entered into a $17 million settlement with 37 states and the District of Columbia after the company was found to circumvent privacy settings in Apple's Safari browser. Between 2011 and 2012, Google secretly stored web tracking cookies in Safari, overriding Apple's default settings that forbid third-party cookies from being installed. "By tracking millions of people without their knowledge, Google violated not only their privacy, but also their trust," New York Attorney General Eric Schneiderman said in a statement. His state will receive $899,580 of the settlement money. How much evil does $17MM buy these days?
|
|
|
|
|
That's like a peon in life paying $0.017 cents in "recompense" for crushing someone's car on purpose.
|
|
|
|
|
Yet another reason NOT to use Google.
Getting information off the Internet is like taking a drink from a fire hydrant.
- Mitchell Kapor
|
|
|
|
|
How much does the NSA cost?
MVVM # - I did it My Way
___________________________________________
Man, you're a god. - walterhevedeich 26/05/2011
.\\axxx
(That's an 'M')
|
|
|
|
|
Extensible, mutable, and rapidly evolving thanks to open source roots, the Web browser reigns as a platform for users, developers alike. Write once, run everywhere (after a few polyfills. And some hacks. And lots of swearing. And maybe a few tweaks.)
|
|
|
|
|
<rant>
On point (1), fair enough. Although I still prefer Outlook to any Web mail app, but evidently I'm perverse.
Points (2) and (4) list features enabled by browser-specific extensions, then in (5) he still claims "multiplatform". You CAN have your cake and eat it.
For point (3) he really doesn't seem to understand "Open Source", or the fact that copying from an existing page may actually break copyright law. OK to look at for learning, not OK to copy, unless explicitly permitted.
Point (6) "A clean abstraction layer" had me spluttering my coffee over the monitor. If that's a "clean" abstraction, then I'm a banana. Conceptually it started off clean(ish), but its become muddied.
Point (7) - is he seriously saying that JS has come with a better library system than any other. It doesn't f****ng have a module system (yet)!!!
Point (8) seems to ignore the fragmentation caused by targeting features specific to one browser.
Point (9) again fails to mention that this is all not supported yet across all browsers.
And for point (10): (i) Node.JS is not run in the browser, so is irrelevant, but with regard to the callback mechanism (apparently invented by JavaScript):
f = function (a) { "What could go", function (b) { "With a callback based", function (c) { "architecture" }, function (3) {"anyway"}}};
While the ideas of coroutines and continuations have existed since I was born!! That's progress, largely in the wrong direction, but progress.
</rant>
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Android, iOS and Blackberry top Dice's list of top search terms used by hiring managers at the tech job posting site. All of them
|
|
|
|
|
Kent Sharkey wrote: All of them
Especially Blackberry...
|
|
|
|
|