For most of us, though, finding and fixing bugs is a chore that we'd rather avoid because writing code (and therefore more bugs) is more fun
maybe that's the fundamental thing - the greater a programmer, the more he treats the work as work and not fun. A professional working on building a product and not some amateur playing with his hobby.
A great programmer will use whatever tools are needed or suitable, the 'coder' will use the tools he really prefers using. Like my mate, when presented with his new job that involves creating an updated embedded PoS terminal, rather than reusing as much of the legacy C++ code blocks the old system has and putting it on a Linux platform, is only interested in rewriting it all in.NET on Windows 7 (or 10 probably).
"Identify the need and/or problem" is the crucial part and is what differentiates the great programmer who fixes that need, and the adequate programmer who is so focused on the solution he can forget what it is he's really supposed to be doing.
Or to put it another way, the great are those who listen before talking, the rest just prefer to talk.
and whatever you use is wasting space on bits of chrome - unless you run it in full-screen kiosk mode.
There's a reason you have things like title bars and menus even if you don't use them all the time. Its because they do get used. The best UI is the one that fits with what the OS says is the primary design. Consistency is key.
Besides, Microsoft did optimise Office's UI for actual use, based on metrics from their UI labs and people actually using menu items. This resulted in the ribbon and a double-size Paste icon (as everyone uses paste twice as often as either cut or copy, so obviously it has to be twice as important)
those pesky shareholders are going to get their wish - only instead of Windows 11, it'll be various bits of cloud enabled functionality (for only a small monthly subscription, of course).
Rubbish. Once you have 3 or 4 levels of nested braces you're not going to be readable at all.
The only thing that gives you the symmetrical blocks is indentation, in this respect Python is the most readable, but all other languages are just as good if you format your code nicely.
So given that code readability depends on the quality of the programmer,. and that programmers taught using Pascal are better, then it stands to reason that we should be teaching using Pascal. You use whatever is appropriate for the industry you work in after that.
#in a way your comment is backwards, considering Pascal came first - why did you choose a different toolchain of Java Python or C++ when you already had a Pascal one?
As for productivity, the amount of typing is overrated, considering a) thinking is (or should be) the activity that takes up most of your programming effort, b) IDEs do most of it for you, and c) nothing in Pascal comes close to the verbosity of Java or C#. So what if you have to type Begin instead of { when your method names are 40 characters long:)
so yes, you're right - but not when applying it to Pascal. Besides, I can think of one area where Pascal is a good thing - education. It was designed to teach programming after all.
Well, I've been listening to the BBC's history of the first world war, particularly how it started in the first place. What was just some useless (and lucky!) Serbian terrorist turned into a European catastrophe remarkably quickly through a chain of events based on one country not liking another country and manoeuvring the situation to give them an excuse for local 'peach keeping' annexation.
At the same time I was listening to how Russia was entering the Ukraine "to keep the peace", even though they were not sending any troops over there, and Europe and America were getting unhappy with them, giving them an excuse to impose financial sanctions. Trivial politicking just like our World Children like to play, except this is just the same as happened back in 1914.
I think it'll all be fine, but Russia won't back down but might just enhance its action in a fit of pique, and you never know where it might end, despite no-one wanting war. Just like in 1914.
Nobody, but nobody is going to hand over many billions of dollars to develop "a big net", so no... its way to simple, obvious and probably workable for the defence industry to get involved with.
Microsoft says "silverlight s dead", ex Silverlight team (now working on WP) announces Silverlight as the thing for WP.
I guess its the natureof Microsoft's non-joined-up team structures, one team likes something another team doesn't. I think things are changing now with Nadella actually taking charge.
The thing for WP and Metro, according to Microsoft is Cordova! I can't argue against that, even Microsoft knows cross-platform toolsets are the way forward:-)
When I was a student doing computer science, they taught me:
Pascal, C, assembler, Concurrent Euclid, Simula and Prolog.
This was in the days before Java and.NET (almost in the days before C++!).
The reason they did this was to teach programming, using the best tool (well, a teaching best tool) for each type job - the hardware course, for example, didn't use Pascal, the concurrency class didn't use assembler.
All the people saying you should use language X or Y are totally missing the point. VB is just as good a starting language for anyone (though I think Pascal is better, but VB has much better tooling nowadays), starting with Java because its used in industry is both short-sighted and useless. Same applies to any language.
You have to consider that the Samsung extras are the only thing they can really do to make their phones different, and so they have to create something almost by default. The problem is coming up with an idea for a thing that hasn't already been done by Google. (its like Microsoft in reverse, once a 3rd party came up with a great idea and Microsoft them bundled their own version in the next OS, Google bundles them before you have a chance!)
So maybe if they are dedicated to an OS, they will have more of a reason to write good addons and software features to go with it, as Google isn't exactly going to port the whole of Google Play to Tizen for them, and if they don't produce good feature software, no-one will buy the phones.
reminds me of an article by a progressive liberal feminist who had kids, she said that even though she kept all misogynistic toys from her boy and ensured he had a full suite of acceptable role models and no violent media.... he still played guns with the cardboard inner from toilet rolls.
Embrace our equality by all means, but understand our differences.
Once upon a time in the stock market on America there was a bit of a tech bubble, everybody wanted tech stocks like Yahoo and other powerhouses of future technological change.
At this time a new company emerged amongst all these internet giants, it was called NetJ.com and whilst it had the magic of "Net" "J" and ".com" in its name, it had little else. In fact, its filing to the stock market said:
"The company is not currently engaged in any substantial business activity and has no plans to engage in any such activity in the foreseeable future."
The sharemarket rewarded NetJ.com with a $100 million valuation.
I guess inflation and QE means $100m is now equal to $40bn in stock-market terms.
A library will do the hard work for a limited section of what you need, like a XML parser library will give you functions you can use to manipulate your own XML, or a SSL library that will manage the hard work of encryption. Nice and easy, neatly compartmentalized to do 1 thing (hopefully well).
A framework bundles a load of these in, and then also provides you with a load of "boilerplate" that helps you do things the framework is designed to do - eg a web site framework that adds routes and templates for you - so all you need to do is put application logic in the spaces marked "todo".
The problem is that most frameworks do far more than I like, so if you want to step outside what they do, or the way they do it, you're SOL. Similarly, I find that I can more easily create the same functionality using libraries.
I agree, web dev is getting so good even Microsoft is not only embracing stuff like Cordova but is saying its a great way to write Metro apps!
Personally, I just like the way it forces people to design their programs into client and server sides, hopefully making a good, reusable API on the latter.
Staying ahead of the kinds means understanding the fundamentals and teaching them that - the kids may know Ruby or Scala or whatever the current fad is, but if they don't understand when to use an array or a list we'll continue to get shockingly crap programming from them.
You're not correct there - computer science is a serious subject, but if you took one of them you'd find it remarkable devoid of "computing" - you'd have a lot of maths and statistics instead.
When I was at university statistical job analysis, algorithms and mathematical modelling were the kind of modules you took, which at the time I thought was pointless, but when you start sizing networks you realise what its all about. For the majority of computing work, its all irrelevant, but fortunately for those of us who just "work in computers", someone else has done the hard work to make the underlying stuff work properly.
My mate did electrical engineering, he did a lot more "computing" than I did.
In C++ you just don;t want a framework, you want libraries that do the heard work for you as you provide the application logic.
For web servers/services, there are a lot of "embedded" libraries that are brilliant. Mongoose or NxWeb come to mind, best thing about them is that they are really easy to use and you don't need to learn a huge amount of "magic" ways that a framework has decided that you'll work in.
For most of us, though, finding and fixing bugs is a chore that we'd rather avoid because writing code (and therefore more bugs) is more fun
maybe that's the fundamental thing - the greater a programmer, the more he treats the work as work and not fun. A professional working on building a product and not some amateur playing with his hobby.
A great programmer will use whatever tools are needed or suitable, the 'coder' will use the tools he really prefers using. Like my mate, when presented with his new job that involves creating an updated embedded PoS terminal, rather than reusing as much of the legacy C++ code blocks the old system has and putting it on a Linux platform, is only interested in rewriting it all in .NET on Windows 7 (or 10 probably).
I think you highlighted the wrong part.
"Identify the need and/or problem" is the crucial part and is what differentiates the great programmer who fixes that need, and the adequate programmer who is so focused on the solution he can forget what it is he's really supposed to be doing.
Or to put it another way, the great are those who listen before talking, the rest just prefer to talk.
The "good" one wastes screen space
and whatever you use is wasting space on bits of chrome - unless you run it in full-screen kiosk mode.
There's a reason you have things like title bars and menus even if you don't use them all the time. Its because they do get used. The best UI is the one that fits with what the OS says is the primary design. Consistency is key.
Besides, Microsoft did optimise Office's UI for actual use, based on metrics from their UI labs and people actually using menu items. This resulted in the ribbon and a double-size Paste icon (as everyone uses paste twice as often as either cut or copy, so obviously it has to be twice as important)
those pesky shareholders are going to get their wish - only instead of Windows 11, it'll be various bits of cloud enabled functionality (for only a small monthly subscription, of course).
right - your idea of "if it can run on this dog, it'll run anywhere" and then say you have 8GB ram on it.
Try again, with the 1Gb minimum that Microsoft recommends and get back to us on its performance, if you can get it to load slashdot.
Rubbish. Once you have 3 or 4 levels of nested braces you're not going to be readable at all.
The only thing that gives you the symmetrical blocks is indentation, in this respect Python is the most readable, but all other languages are just as good if you format your code nicely.
So given that code readability depends on the quality of the programmer,. and that programmers taught using Pascal are better, then it stands to reason that we should be teaching using Pascal. You use whatever is appropriate for the industry you work in after that.
#in a way your comment is backwards, considering Pascal came first - why did you choose a different toolchain of Java Python or C++ when you already had a Pascal one?
As for productivity, the amount of typing is overrated, considering a) thinking is (or should be) the activity that takes up most of your programming effort, b) IDEs do most of it for you, and c) nothing in Pascal comes close to the verbosity of Java or C#. So what if you have to type Begin instead of { when your method names are 40 characters long :)
so yes, you're right - but not when applying it to Pascal. Besides, I can think of one area where Pascal is a good thing - education. It was designed to teach programming after all.
Well, I've been listening to the BBC's history of the first world war, particularly how it started in the first place. What was just some useless (and lucky!) Serbian terrorist turned into a European catastrophe remarkably quickly through a chain of events based on one country not liking another country and manoeuvring the situation to give them an excuse for local 'peach keeping' annexation.
At the same time I was listening to how Russia was entering the Ukraine "to keep the peace", even though they were not sending any troops over there, and Europe and America were getting unhappy with them, giving them an excuse to impose financial sanctions. Trivial politicking just like our World Children like to play, except this is just the same as happened back in 1914.
I think it'll all be fine, but Russia won't back down but might just enhance its action in a fit of pique, and you never know where it might end, despite no-one wanting war. Just like in 1914.
And now we see how surveys are conducted
"Not the reputable ones no, but there aren't many of those" - Sir Humphrey Appleby
Nobody, but nobody is going to hand over many billions of dollars to develop "a big net", so no... its way to simple, obvious and probably workable for the defence industry to get involved with.
Microsoft says "silverlight s dead", ex Silverlight team (now working on WP) announces Silverlight as the thing for WP.
I guess its the natureof Microsoft's non-joined-up team structures, one team likes something another team doesn't. I think things are changing now with Nadella actually taking charge.
The thing for WP and Metro, according to Microsoft is Cordova! I can't argue against that, even Microsoft knows cross-platform toolsets are the way forward :-)
When I was a student doing computer science, they taught me:
Pascal, C, assembler, Concurrent Euclid, Simula and Prolog.
This was in the days before Java and .NET (almost in the days before C++!).
The reason they did this was to teach programming, using the best tool (well, a teaching best tool) for each type job - the hardware course, for example, didn't use Pascal, the concurrency class didn't use assembler.
All the people saying you should use language X or Y are totally missing the point. VB is just as good a starting language for anyone (though I think Pascal is better, but VB has much better tooling nowadays), starting with Java because its used in industry is both short-sighted and useless. Same applies to any language.
bring me a 16 core, 4Ghz phone, with a ton of ram and 3 days battery life and whatever OS you put on it will be the new standard.
sigh. If only my Windows laptop was as powerful as that.
I don't think so - it would leave you buying a Tizen Note PDA and running all your old Android apps on it using the compatibility layer its got.
You have to consider that the Samsung extras are the only thing they can really do to make their phones different, and so they have to create something almost by default. The problem is coming up with an idea for a thing that hasn't already been done by Google. (its like Microsoft in reverse, once a 3rd party came up with a great idea and Microsoft them bundled their own version in the next OS, Google bundles them before you have a chance!)
So maybe if they are dedicated to an OS, they will have more of a reason to write good addons and software features to go with it, as Google isn't exactly going to port the whole of Google Play to Tizen for them, and if they don't produce good feature software, no-one will buy the phones.
another iteration of "Here's a nice small fast OS and toolset that does only a few things but does them really, really well."
that'll be either systemd or FreeBSD, depending on your ideology :-)
reminds me of an article by a progressive liberal feminist who had kids, she said that even though she kept all misogynistic toys from her boy and ensured he had a full suite of acceptable role models and no violent media.... he still played guns with the cardboard inner from toilet rolls.
Embrace our equality by all means, but understand our differences.
Once upon a time in the stock market on America there was a bit of a tech bubble, everybody wanted tech stocks like Yahoo and other powerhouses of future technological change.
At this time a new company emerged amongst all these internet giants, it was called NetJ.com and whilst it had the magic of "Net" "J" and ".com" in its name, it had little else. In fact, its filing to the stock market said:
"The company is not currently engaged in any substantial business activity and has no plans to engage in any such activity in the foreseeable future."
The sharemarket rewarded NetJ.com with a $100 million valuation.
I guess inflation and QE means $100m is now equal to $40bn in stock-market terms.
No, I understand them completely.
A library will do the hard work for a limited section of what you need, like a XML parser library will give you functions you can use to manipulate your own XML, or a SSL library that will manage the hard work of encryption. Nice and easy, neatly compartmentalized to do 1 thing (hopefully well).
A framework bundles a load of these in, and then also provides you with a load of "boilerplate" that helps you do things the framework is designed to do - eg a web site framework that adds routes and templates for you - so all you need to do is put application logic in the spaces marked "todo".
The problem is that most frameworks do far more than I like, so if you want to step outside what they do, or the way they do it, you're SOL. Similarly, I find that I can more easily create the same functionality using libraries.
I agree, web dev is getting so good even Microsoft is not only embracing stuff like Cordova but is saying its a great way to write Metro apps!
Personally, I just like the way it forces people to design their programs into client and server sides, hopefully making a good, reusable API on the latter.
Staying ahead of the kinds means understanding the fundamentals and teaching them that - the kids may know Ruby or Scala or whatever the current fad is, but if they don't understand when to use an array or a list we'll continue to get shockingly crap programming from them.
You're not correct there - computer science is a serious subject, but if you took one of them you'd find it remarkable devoid of "computing" - you'd have a lot of maths and statistics instead.
When I was at university statistical job analysis, algorithms and mathematical modelling were the kind of modules you took, which at the time I thought was pointless, but when you start sizing networks you realise what its all about. For the majority of computing work, its all irrelevant, but fortunately for those of us who just "work in computers", someone else has done the hard work to make the underlying stuff work properly.
My mate did electrical engineering, he did a lot more "computing" than I did.
so what, why would they? I doubt 1 in 20 executives bothers to read the quoted text nor do we ask them to.
In C++ you just don;t want a framework, you want libraries that do the heard work for you as you provide the application logic.
For web servers/services, there are a lot of "embedded" libraries that are brilliant. Mongoose or NxWeb come to mind, best thing about them is that they are really easy to use and you don't need to learn a huge amount of "magic" ways that a framework has decided that you'll work in.
Win95 is twenty years old, not 20 months like Google is complaining of supporting.
(and to be fair to Microsoft, they only recently stopped supporting XP which is 12 years old or so)