Where I work, a bunch of us sit together for lunch, from my team and people who used to be on the team but went to work on other things.
Talking about work is banned. Lunch is a time to crack jokes, talk about hobbies, outside interest and to put the world to rights.
Taking a complete break from work for half to one hour is very good for concentration and problem-solving. It's amazing how frequently seemingly difficult problems become easily solvable after a proper lunch break.
Some people are fine with half an hour, but I need at least an hour and some strong coffee afterwards. For the last 20-30 minutes, I read the news and have a good laugh at the ranting on slashdot.
Those social bonds formed at lunch time are important. It's easier to go and speak to those people about work matters later and get their advice when you're friendly with them and you know how their minds work.
And it's just nice to have a few friends in the place.
Of course they still work, both of those devices are infinitely simpler than a DVD player.
I'll bet that the DVD player has significantly fewer moving parts than the old gear from the 70s, and those that it has are not designed to last much longer than the warranty.
A DVD or Blu Ray player that lasts 20+ years is irrelevant since those formats are already obsolete by the time they come out. Technology has changed to the point that all of these media can be copied trivially and stored "on the network."
I don't need a CD or DVD player, as such, any more. All of the content can be ripped with no loss of quality and the physical media put away in the cupboard.
I'm of the opinion (just an opinion, mind you) that shell scripting is a bit of a black art and very quirky and unpredictable. I do my shell scripting by "hack and test, repeat."
I think it's very dangerous when people claim that shell scripts can be portable (some people abhor bash and say that you should stick with sh) especially since they rely on the commands and utilities installed on any particular system. Are they GNU, BSD, SysV, POSIX? What versions are they? What directories are they in etc.
I think that shell scripting to any extent beyond 20 lines, say, is way too complicated for beginners. People should be introduced to programming through a sensible and simple high-level language before they are condemned to shell scripting.
Shell scripting can be fun in a perverse kind of way if you enjoy all the "clever" and dirty hacks that can be done, but, as you say, there are may pitfalls for the beginner.
The thing is, no-one's forcing people to buy or pirate all this terrible closed-source commercial software.
Yes, but there are a significant number of "ordinary people" (the majority) who have never even heard of Free and Open Source software, and many that have heard of it have never considered trying it.
I don't know anyone, except managers, who have had pay rises (even to keep up with inflation) in the last few years. Effectively, this is already a pay cut.
I wouldn't take any more of a cut, but I would consider working from home 2 or 3 days a week for the same money. That way I get to save a bit to make up for some of the inflationary pay cut and the company gets to save of "overheads" so the "investors" get a bigger earning per share this quarter.
Our natural field of view is landscape. With big high-resolution monitors nowadays it is very easy to display two portrait pages or documents side-by-side on the landscape display.
I also find it useful to have a portrait document open and several smaller windows open beside it.
I also find it amazing the number of people who have all of their windows maximised and don't know how to switch between them, and don't know that you can do copy-and-paste...
C is not better than C++. Quite the opposite: Most (not all, though) of C++'s problems are actually C problems.
C++'s problem is that it tries to be all things to all people, and fails.
C++ started out trying to be a superset of C. That was the first mistake. They soon found out that it wouldn't work, but had to keep most of the C features for all that old C++ still to work.
People still try to pretend that it's a "good idea" to recompiled your C source in a C++ compiler (which involves a non-trivial porting effort that they sweep under the carpet) so that you can start to "benefit" from the new C++ features.
C++ syntax is terrible and they keep making it worse. Since they tried to keep it backwards-compatible with C (and failed) they tried all sorts of dirty hacks with the syntax to put in the new features.
The older I get, the more I'm convinced by using the right language for the job. If that means Java, Ruby, PERL, C or whatever, then so be it. C++ is not usually a good choice unless you have to work with and on existing C++ code.
A language I looked at when I was 15/16, which really taught me how to write good code was Modula-2. It's spirit lives on in Borland's Object Pascal/Delphi (whatever it's called nowadays).
For an entertaining and insightful look at many of the problems with C++, have a look at the C++ Frequently Questioned Answers which is organised like (and in response to) the C++ FAQ Lite.
Finally, here is a collection of links to various criticisms of C++.
In summary, C++ is too big and too complicated, and it keeps on getting worse.
C++ sits in an area that is reasonably unique amongst languages. It is very performant (unlike Scheme, Ruby, and Python), but it also has an ability to support very rich abstractions (unlike Java and C).
True, but it hasn't been done at all well in C++. That's why I said that C++ had to happen so that people could see which ideas would work and which wouldn't.
I'm not at all convinced by these arguments. I'd much rather write performance-critical code in something like C, and the clever stuff in a much higher language.
For a trivial and contrived example, I get a lot done on my personal projects in C and bash.
I've used PERL, looked at scheme, python and ruby. I've done a bit of Java, and for quickly hacking together OOP stuff, I love it. It's so easy, it's wonderful.
I've had to learn a lot about C++ for my work. Luckily, I only have to use it mostly for writing unit tests, but some of our code base is in (not very pretty) C++ hacked together in a hurry.
Sometime soon I will try writing some D. I've done some background reading, and I really like what I see so far.
Do not underestimate the friction that you face when it comes to C++ and similar languages.
I was in exactly this situation this week on a training course where we had ~12 hours to do an entire project.
We had 1 non-programmer on the team (of 6), one "software architect" and the other 4 of us were "software engineers." 4 of them wanted to use C++. I convinced them to do it in bash. Only one had sort of done some bourne shell a long time ago.
We got it done, and it worked. If we'd done it in C++ I dare say we'd still have been struggling to get it to compile by the deadline.
I organised things and coached them. They were impressed, and very surprised at how simple it turned out.
Indeed. There's so much you can do with well-written C and good libraries quicker, more reliably, more simply and much more efficiently than in C++.
With C you have a chance of being able to read and understand your source code 6 months after you wrote it. The syntax is relatively clean, If you're into syntax-highlighting editors, they usually get it right.
There aren't the ABI headaches that come with C++. The compiled code is smaller and faster.
C can fit inside your head. Unless you have an IQ of 250 and infinite time, you are never going to learn enough of C++ to become an expert.
C programs are more likely to run correctly.
Don't get me started on C++ references and const....
I write C++ when I am paid to. I write everything else for fun (mostly C and bash).
I can't understand why anyone would start a new project in C++. The only reason anyone could seriously consider it is if they have to maintain or enhance an existing C++ code base.
C++ was one of those languages that needed to come about if only for the industry to see, out of all of the "great ideas" what would work and wouldn't in practice.
C++ continues to mushroom, becoming ever more cumbersome. In the mean time, simpler (and arguably better) languages have come (and gone).
Where I work, a bunch of us sit together for lunch, from my team and people who used to be on the team but went to work on other things.
Talking about work is banned. Lunch is a time to crack jokes, talk about hobbies, outside interest and to put the world to rights.
Taking a complete break from work for half to one hour is very good for concentration and problem-solving. It's amazing how frequently seemingly difficult problems become easily solvable after a proper lunch break.
Some people are fine with half an hour, but I need at least an hour and some strong coffee afterwards. For the last 20-30 minutes, I read the news and have a good laugh at the ranting on slashdot.
Those social bonds formed at lunch time are important. It's easier to go and speak to those people about work matters later and get their advice when you're friendly with them and you know how their minds work.
And it's just nice to have a few friends in the place.
Of course they still work, both of those devices are infinitely simpler than a DVD player.
I'll bet that the DVD player has significantly fewer moving parts than the old gear from the 70s, and those that it has are not designed to last much longer than the warranty.
A DVD or Blu Ray player that lasts 20+ years is irrelevant since those formats are already obsolete by the time they come out. Technology has changed to the point that all of these media can be copied trivially and stored "on the network."
I don't need a CD or DVD player, as such, any more. All of the content can be ripped with no loss of quality and the physical media put away in the cupboard.
It's easy to install and to configure provided you can live with KDE or XFCE before installing gnome 3 (gnomeslackbuild.org) or anything else...
Bah! You kids... What's wrong with Window Maker?
Now get off my lawn...
Vegetarians bug me (but not as much as humanitarians).
Are they the ones that eat humans exclusively?
Yes, it sucks, doesn't it? The Godfather II is on TV just now...
Novell, the owner of SUSE Linux?
...and bankrolled by Microsoft?
The war on work has been going on since the Pleistocene.
Yes, I used to love playing with that stuff too when I was a kid.
There's no point in people being on earth either. We just are.
I'm of the opinion (just an opinion, mind you) that shell scripting is a bit of a black art and very quirky and unpredictable. I do my shell scripting by "hack and test, repeat."
I think it's very dangerous when people claim that shell scripts can be portable (some people abhor bash and say that you should stick with sh) especially since they rely on the commands and utilities installed on any particular system. Are they GNU, BSD, SysV, POSIX? What versions are they? What directories are they in etc.
I think that shell scripting to any extent beyond 20 lines, say, is way too complicated for beginners. People should be introduced to programming through a sensible and simple high-level language before they are condemned to shell scripting.
Shell scripting can be fun in a perverse kind of way if you enjoy all the "clever" and dirty hacks that can be done, but, as you say, there are may pitfalls for the beginner.
What's wrong with the Advanced Bash Scripting Guide at tldp.org?
It's not perfect, but it will get you along way.
You rule.
I have a hard time understand the need for bash when perl is around.
Conversely, I have a hard time understanding why anyone would use perl when bash, Ruby and Python are around.
A shell should be (needs to be) light-weight. Perl is not. Perl's syntax is horrendously complicated. Bash (and sh) syntax is not.
The thing is, no-one's forcing people to buy or pirate all this terrible closed-source commercial software.
Yes, but there are a significant number of "ordinary people" (the majority) who have never even heard of Free and Open Source software, and many that have heard of it have never considered trying it.
I don't know anyone, except managers, who have had pay rises (even to keep up with inflation) in the last few years. Effectively, this is already a pay cut.
I wouldn't take any more of a cut, but I would consider working from home 2 or 3 days a week for the same money. That way I get to save a bit to make up for some of the inflationary pay cut and the company gets to save of "overheads" so the "investors" get a bigger earning per share this quarter.
The best quality software is available legally for free and with source code. The quality of commercial software isn't all that great.
The niche for closed-source commercial software is going to keep shrinking.
These countries have no need to "pirate" software.
Our natural field of view is landscape. With big high-resolution monitors nowadays it is very easy to display two portrait pages or documents side-by-side on the landscape display.
I also find it useful to have a portrait document open and several smaller windows open beside it.
I also find it amazing the number of people who have all of their windows maximised and don't know how to switch between them, and don't know that you can do copy-and-paste...
"We only know 3 chords, but they're good ones!" - Status Quo.
C is not better than C++. Quite the opposite: Most (not all, though) of C++'s problems are actually C problems.
C++'s problem is that it tries to be all things to all people, and fails.
C++ started out trying to be a superset of C. That was the first mistake. They soon found out that it wouldn't work, but had to keep most of the C features for all that old C++ still to work.
People still try to pretend that it's a "good idea" to recompiled your C source in a C++ compiler (which involves a non-trivial porting effort that they sweep under the carpet) so that you can start to "benefit" from the new C++ features.
C++ syntax is terrible and they keep making it worse. Since they tried to keep it backwards-compatible with C (and failed) they tried all sorts of dirty hacks with the syntax to put in the new features.
The older I get, the more I'm convinced by using the right language for the job. If that means Java, Ruby, PERL, C or whatever, then so be it. C++ is not usually a good choice unless you have to work with and on existing C++ code.
A language I looked at when I was 15/16, which really taught me how to write good code was Modula-2. It's spirit lives on in Borland's Object Pascal/Delphi (whatever it's called nowadays).
For an entertaining and insightful look at many of the problems with C++, have a look at the C++ Frequently Questioned Answers which is organised like (and in response to) the C++ FAQ Lite.
Finally, here is a collection of links to various criticisms of C++.
In summary, C++ is too big and too complicated, and it keeps on getting worse.
C++ sits in an area that is reasonably unique amongst languages. It is very performant (unlike Scheme, Ruby, and Python), but it also has an ability to support very rich abstractions (unlike Java and C).
True, but it hasn't been done at all well in C++. That's why I said that C++ had to happen so that people could see which ideas would work and which wouldn't.
I'm not at all convinced by these arguments. I'd much rather write performance-critical code in something like C, and the clever stuff in a much higher language.
For a trivial and contrived example, I get a lot done on my personal projects in C and bash.
I've used PERL, looked at scheme, python and ruby. I've done a bit of Java, and for quickly hacking together OOP stuff, I love it. It's so easy, it's wonderful.
I've had to learn a lot about C++ for my work. Luckily, I only have to use it mostly for writing unit tests, but some of our code base is in (not very pretty) C++ hacked together in a hurry.
Sometime soon I will try writing some D. I've done some background reading, and I really like what I see so far.
Your devil's advocacy is dutifully acknowleged.
Do not underestimate the friction that you face when it comes to C++ and similar languages.
I was in exactly this situation this week on a training course where we had ~12 hours to do an entire project.
We had 1 non-programmer on the team (of 6), one "software architect" and the other 4 of us were "software engineers." 4 of them wanted to use C++. I convinced them to do it in bash. Only one had sort of done some bourne shell a long time ago.
We got it done, and it worked. If we'd done it in C++ I dare say we'd still have been struggling to get it to compile by the deadline.
I organised things and coached them. They were impressed, and very surprised at how simple it turned out.
You're right. Like back to C or pure assembler.
Indeed. There's so much you can do with well-written C and good libraries quicker, more reliably, more simply and much more efficiently than in C++.
With C you have a chance of being able to read and understand your source code 6 months after you wrote it. The syntax is relatively clean, If you're into syntax-highlighting editors, they usually get it right.
There aren't the ABI headaches that come with C++. The compiled code is smaller and faster.
C can fit inside your head. Unless you have an IQ of 250 and infinite time, you are never going to learn enough of C++ to become an expert.
C programs are more likely to run correctly.
Don't get me started on C++ references and const....
I write C++ when I am paid to. I write everything else for fun (mostly C and bash).
Scheme, Java, Ruby, Python, D, C.
I can't understand why anyone would start a new project in C++. The only reason anyone could seriously consider it is if they have to maintain or enhance an existing C++ code base.
Someone with a clue!
C++ was one of those languages that needed to come about if only for the industry to see, out of all of the "great ideas" what would work and wouldn't in practice.
C++ continues to mushroom, becoming ever more cumbersome. In the mean time, simpler (and arguably better) languages have come (and gone).
It's time to move on.
C++ should be officially classed as a Weapon of Mass Destruction
It's also a Cruel and Unusual Punishment for those of us who try to earn a living writing code.