.. are such a sick and twisted bunch. Unfortunately for you, you never learned real programming, so now you think a hyper-text system on speed (that's what a modern web browser is) is the only true platform for developing applications. Next problem is that you jump on each and every new fad as if it's christs second coming.
Desktop in your browser? OS in your browser? Sad and stupid - makes me angry.
The study was paid for by the Danish Cancer Society. Trust me when I say they are not influenced by Nokia or any other operator in the mobile telephone market. The organization is extremely well regarded and has a spotless reputation in Denmark.
So that is your opinion. I've experimented with their products and I don't find them very useful or impressive, but they do *look* nice, they must have a talented artist.
Have you tried Outlook Web Access (from Internet Explorer)? It's a web-application that is part of the evil empires Exchange server product, and whether you like them or not you'll have to admit that it is a pretty impressive web app.
... because with it you can create nicer web applications with existing browsers, but why do so many people seem to think of it as the future? It is a mess of technologies and not nearly as powerful as e.g. Java applets or.net 'applets'. Besides, I don't want to edit my documents in a web browser I cry to regularly when I loose the text I'm editing in MediaWiki.
I know it is a sin to say so, but when Microsoft (and Novell/Mono) has succeeded in making.net pervasive, smart-clients/applets will be a much more attractive technology for building complex web (remote) applications.
If you are going to be a lemming then find another group of developers to follow than the web-heads. They're a sad bunch that are somewhat disconnected from traditional software development, which means they are learning a lot of old lessons the hard way.
I worked as a software developer for an ISV with 8 developers and a couple of non-techies a while back. I was also the sysadm and while I propably spent a couple of weeks doing sysadm week during the first few months it tapered down to about an hours worth or something like that once I had everything configured. If the users are competent enough you don't have to do much support work and once things are configured correctly you just have to do the occasional manual update and fix things when stuff breaks.
My laptop battery has a voltage rating of 10.8. The amount of energy in Joules on a battery with a voltage of 10.8V and power rating of 12Ah, would be
E = 10.8V * 12Ah = 129.6Wh = 467 KJ (3600 J/Wh)
E = P * t, so P = E / t
P = 467 KJ / (5 * 60) secs = 1555W
1555W is less than many hair driers
Re:when I was young. . .
on
Effective XML
·
· Score: 1
2) XSLT
You clearly haven't tried it, or did not use it as intended. Do you have any experience with other functional languages? I work almost exclusively with XSLT at the moment and wouldn't have it any other way
My beef is not with XSLT as a transformation language, my beef with it is that it uses XML syntax! XML is easy to parse for machines not for humans, to me it looks like line noise and I have to mentally filter out a lot of superflous syntax that makes it easy if you only know 1s and 0s. XSLT itself is fine, it is just a mess to look at even with proper syntax highlighting. It should have been implemented as a proper transformation language, but the designers got caught up in the XML hype and decided that XML syntax was a meaningful "interface" to present to the XSLT developers/users. Bad call! - My opinion.
5 years in the business...
on
Effective XML
·
· Score: 5, Insightful
... and it is starting to dawn on me that trends like pervasive XMLization is going to haunt us for ever. The combination of business-minded consultants that push a market to create demand for themselves and a huge number of clueless but enthusiastic developers that will jump on any new idea and push it where it doesn't want to go unsurprisingly leads to this kind of instability.
I hate XML with a passion. Let me present you with three examples
1) Programming languages based on XML.
Yes, it is true. Perverted minds, somewhere on this planet, actually seems to think that this is a neat idea! Since their initial conception the pivotal point of programming languages have been to raise the level of programming. To move from the computers domain to the human domain - to make it more intuitive an natural for a human being to program a computer. With these new XML-based languages we are moving a step backwards, because truely the only benefit of XML in this context is that it is easier for computers to parse, while it is certainly harder for humans.
2) XSLT
Have you tried it? I rest my case.
3) SOAP
Okay, initially this actually seemed like a good idea to me, but having thought about it, I really think it sucks. Okay, so it is easier to implement SOAP for a particular platform or programming language, but a wire protocol is like a compiler or an OS kernel in a certain sense - it is okay that it is very hard to write, as long as it is stable and high performance, because it is such a central component.
J2SE vs J2EE
on
Bitter EJB
·
· Score: 1, Insightful
I think Sun divided their developers into two camps. One camp would make a virtual execution platform with a nice associated language and a good core framework and they labelled it java/J2SE. The other camp was given the task of designing an enterprise application framework and they labelled it J2EE. The big problem is that the J2EE team decided (and probably for a good reason) that everything should be dynamic and runtime configurable and pluggable and extensible to the level that it became so dynamic that the static typedness of java ended up being a big obstruction, which has led to complex code with a lot of declarations and layers that hide away your business logic.
J2EE really wanted to be implemented in ruby, or Python if that's your thing. it is so obvious.
J2EE is as ridiculous as the complete over-abuse of XML (Jelly and XSL comes to mind).
You "design" point is not orthogonal to the items in the list in the post you responded to. So while "a design" is certainly valuable the OP indicated a set of circumstances that in his experience would lead to success. Most likely this succes would incorporate "a design".
I think that is an incredibly simple and extremely powerful idea!! Sometimes when you have been programming for a while you just need the mental rest you get from working on your own. I think that the next time I feel like a break while pair programming, I will try to suggest to my pair-programming partner that we split up and one of us focus on the tests while the other is doing the production code.
I think it could be especially useful when you are working on a problem that you are not really sure how to solve. The one person can write a test suite, which is a really good way to work out the most flexible and useful interface, while the developer does some prototyping/sandboxing.
Thanks for the great idea!
Mono - the most important OS project currently
on
Mono 2.8 Released
·
· Score: 2, Insightful
I have worked with Microsoft/C++/COM, Unix/C++, Java, ruby and C#/.net. My favorites are ruby and C#/.net and they compliment eachother so well.
I think Mono is the most important open source project second only to linux, because it will make the most advanced software platform in existence available for free on unix and windows. It is also interesting that it is a useful tool for identifying those among us that are zealots and not software idealists.:-)
This is actually an important point. Not only is it going to be an experience for a life time, but it looks good on your CV. Going across the globe to live in a foreign country shows courage and initiative. Important qualities that are highly rated especially in the software industry, where we have more than our share of introvert nerds.
1) *Everytime* you discover a bug from now on, write a test case that exposes it. Then fix it.
2) Write new functionality test first. You are not allowed to implement new features unless you first implement a test that fails. Once in runs you are either done, or you got ahead of yourself and need to get back to writing a few more tests:-)
There is no mention of Windows.Forms at all. While mono may not be mature yet (I dunno, I haven't tried it), there is little doubt that it will be extremely popular. Once Python, Ruby and Perl implement some degree of interoperation with.net I expect Windows Forms will be the most popular GUI toolkit across C#, Visual Basic, Ruby, Python and Perl.
IMHO, there is one flaw in your analysis. Customer perception is very important so if Oracle expect the SCO law suit to hang around and get news coverage for a few years they sure as hell would not bet their money on linux.
Why is it that SCO show 80 lines of linux kernel source code that are identical to SCO Unix source code and keep claiming that there are hundreds of identical files. Files - not lines.
That the ideas presented in this book are not new, doesn't make them useless. I'd almost say on the contrary. The "soft" part of my book shelf contains
The Pragmatic Programmer XP Explained GoF Design Patterns Object Oriented Software Construction (Meyer) Software Craftmanship Code Complete
Getting familiar with different takes on and approaches to software development has definitely made me a better developer. XP (and SCRUM and other agile methods) has a lot to offer, and a few short comings too. It is not the end all be all of software processes, but it was *the* new thing that made everyone aware of the benefits of unit testing and refactoring, even if these disciplines were not new at all. XP's two major short comings in my opinion is that it puts too much responsibility on the customer and the "simplest thing that could possibly work" does not strictly allow experienced developers to leverage their experience to solve the problem as fast as they are able. I'd like to get my hands on this book and see just how SCRUM differs from XP - I bet it will make me a better developer.
... entropy is getting the better of us. Have never been in a devshop where that wasn't the case. Most developers I've met have had the knowledge but most imho lack the discipline.
Always ask yourself this before you commit (to CVS): "Will this commit add value to the program?" - or have you introduced new weak ideas or hacked around to get a new feature introduced in a hurry. Abstractions live, details and entropy kill.
... a terse notation for anonymous inner classes with one method.
anonoymous inner classes can be used a little bit like blocks in ruby, only the syntax for anonymous inner classes is so verbose. Imagine this:
ArrayList list = new ArrayList();
ArrayList list2 = list.map(new UnaryOperation() {
public object call(object o) {// do the operation
});// with a terse notation for one-method anonymous inner classes that could become
ArrayList list2 = list.map({ |object o|// do the operation });
It may not be possible because the exact interface to implement in the anonymous inner class would have to be derived from the method being called, which might be overloaded.
Anyway, I'd love to be able to use the terse rubyesque style in java, it feels a lot more declarative and communicates much better than all the explicit looping in java, c, C++, C#, VB, VB.net etc.
Here's the thing in a nutshell as I see it. Up front design is not outlawed by XP, but the XP theory is that you can go faster if you skip it. More importantly if you have a big up front design you are likely to be more likely to stick to it, even when you realize that real life is different from the assumptions that you based your design on. You will then start living with adaptations and local fixes and your code starts growing these tumor-like work-arounds that will eventually kill your ability to maintain the code.
The really important thing in XP is that there is zero tolerance for bad code and incomprehensible design. Once it is realized that something could be made better another way it is changed to be that way. The automated tests greatly facilitate this.
My thoughts exactly. Someone mod parent up.
.. are such a sick and twisted bunch. Unfortunately for you, you never learned real programming, so now you think a hyper-text system on speed (that's what a modern web browser is) is the only true platform for developing applications. Next problem is that you jump on each and every new fad as if it's christs second coming.
Desktop in your browser? OS in your browser? Sad and stupid - makes me angry.
The study was paid for by the Danish Cancer Society. Trust me when I say they are not influenced by Nokia or any other operator in the mobile telephone market. The organization is extremely well regarded and has a spotless reputation in Denmark.
Lightning sometimes travels on non-metallic paths??
Yes, and just as often it triggers an avalance of shit - like the word AJAX did, for instance.
So that is your opinion. I've experimented with their products and I don't find them very useful or impressive, but they do *look* nice, they must have a talented artist.
Have you tried Outlook Web Access (from Internet Explorer)? It's a web-application that is part of the evil empires Exchange server product, and whether you like them or not you'll have to admit that it is a pretty impressive web app.
... because with it you can create nicer web applications with existing browsers, but why do so many people seem to think of it as the future? It is a mess of technologies and not nearly as powerful as e.g. Java applets or .net 'applets'. Besides, I don't want to edit my documents in a web browser I cry to regularly when I loose the text I'm editing in MediaWiki.
.net pervasive, smart-clients/applets will be a much more attractive technology for building complex web (remote) applications.
I know it is a sin to say so, but when Microsoft (and Novell/Mono) has succeeded in making
If you are going to be a lemming then find another group of developers to follow than the web-heads. They're a sad bunch that are somewhat disconnected from traditional software development, which means they are learning a lot of old lessons the hard way.
I worked as a software developer for an ISV with 8 developers and a couple of non-techies a while back. I was also the sysadm and while I propably spent a couple of weeks doing sysadm week during the first few months it tapered down to about an hours worth or something like that once I had everything configured. If the users are competent enough you don't have to do much support work and once things are configured correctly you just have to do the occasional manual update and fix things when stuff breaks.
My laptop battery has a voltage rating of 10.8. The amount of energy in Joules on a battery with a voltage of 10.8V and power rating of 12Ah, would be
E = 10.8V * 12Ah = 129.6Wh = 467 KJ (3600 J/Wh)
E = P * t, so P = E / t
P = 467 KJ / (5 * 60) secs = 1555W
1555W is less than many hair driers
... and it is starting to dawn on me that trends like pervasive XMLization is going to haunt us for ever. The combination of business-minded consultants that push a market to create demand for themselves and a huge number of clueless but enthusiastic developers that will jump on any new idea and push it where it doesn't want to go unsurprisingly leads to this kind of instability.
I hate XML with a passion. Let me present you with three examples
1) Programming languages based on XML.
Yes, it is true. Perverted minds, somewhere on this planet, actually seems to think that this is a neat idea! Since their initial conception the pivotal point of programming languages have been to raise the level of programming. To move from the computers domain to the human domain - to make it more intuitive an natural for a human being to program a computer. With these new XML-based languages we are moving a step backwards, because truely the only benefit of XML in this context is that it is easier for computers to parse, while it is certainly harder for humans.
2) XSLT
Have you tried it? I rest my case.
3) SOAP
Okay, initially this actually seemed like a good idea to me, but having thought about it, I really think it sucks. Okay, so it is easier to implement SOAP for a particular platform or programming language, but a wire protocol is like a compiler or an OS kernel in a certain sense - it is okay that it is very hard to write, as long as it is stable and high performance, because it is such a central component.
J2EE really wanted to be implemented in ruby, or Python if that's your thing. it is so obvious.
J2EE is as ridiculous as the complete over-abuse of XML (Jelly and XSL comes to mind).
You "design" point is not orthogonal to the items in the list in the post you responded to. So while "a design" is certainly valuable the OP indicated a set of circumstances that in his experience would lead to success. Most likely this succes would incorporate "a design".
I think that is an incredibly simple and extremely powerful idea!! Sometimes when you have been programming for a while you just need the mental rest you get from working on your own. I think that the next time I feel like a break while pair programming, I will try to suggest to my pair-programming partner that we split up and one of us focus on the tests while the other is doing the production code.
I think it could be especially useful when you are working on a problem that you are not really sure how to solve. The one person can write a test suite, which is a really good way to work out the most flexible and useful interface, while the developer does some prototyping/sandboxing.
Thanks for the great idea!
I have worked with Microsoft/C++/COM, Unix/C++, Java, ruby and C#/.net. My favorites are ruby and C#/.net and they compliment eachother so well.
:-)
I think Mono is the most important open source project second only to linux, because it will make the most advanced software platform in existence available for free on unix and windows. It is also interesting that it is a useful tool for identifying those among us that are zealots and not software idealists.
Release engineering is hard and very boring work - a very unfortunate combination of qualities when nobody is getting paid.
Cross-compiling Python
This is actually an important point. Not only is it going to be an experience for a life time, but it looks good on your CV. Going across the globe to live in a foreign country shows courage and initiative. Important qualities that are highly rated especially in the software industry, where we have more than our share of introvert nerds.
1) *Everytime* you discover a bug from now on, write a test case that exposes it. Then fix it.
:-)
2) Write new functionality test first. You are not allowed to implement new features unless you first implement a test that fails. Once in runs you are either done, or you got ahead of yourself and need to get back to writing a few more tests
There is no mention of Windows.Forms at all. While mono may not be mature yet (I dunno, I haven't tried it), there is little doubt that it will be extremely popular. Once Python, Ruby and Perl implement some degree of interoperation with .net I expect Windows Forms will be the most popular GUI toolkit across C#, Visual Basic, Ruby, Python and Perl.
My US$0.02
IMHO, there is one flaw in your analysis. Customer perception is very important so if Oracle expect the SCO law suit to hang around and get news coverage for a few years they sure as hell would not bet their money on linux.
Why is it that SCO show 80 lines of linux kernel source code that are identical to SCO Unix source code and keep claiming that there are hundreds of identical files. Files - not lines.
That the ideas presented in this book are not new, doesn't make them useless. I'd almost say on the contrary. The "soft" part of my book shelf contains
The Pragmatic Programmer
XP Explained
GoF Design Patterns
Object Oriented Software Construction (Meyer)
Software Craftmanship
Code Complete
Getting familiar with different takes on and approaches to software development has definitely made me a better developer. XP (and SCRUM and other agile methods) has a lot to offer, and a few short comings too. It is not the end all be all of software processes, but it was *the* new thing that made everyone aware of the benefits of unit testing and refactoring, even if these disciplines were not new at all. XP's two major short comings in my opinion is that it puts too much responsibility on the customer and the "simplest thing that could possibly work" does not strictly allow experienced developers to leverage their experience to solve the problem as fast as they are able. I'd like to get my hands on this book and see just how SCRUM differs from XP - I bet it will make me a better developer.
... entropy is getting the better of us. Have never been in a devshop where that wasn't the case. Most developers I've met have had the knowledge but most imho lack the discipline.
Always ask yourself this before you commit (to CVS): "Will this commit add value to the program?" - or have you introduced new weak ideas or hacked around to get a new feature introduced in a hurry. Abstractions live, details and entropy kill.
... a terse notation for anonymous inner classes with one method.
// do the operation // with a terse notation for one-method anonymous inner classes that could become
// do the operation });
anonoymous inner classes can be used a little bit like blocks in ruby, only the syntax for anonymous inner classes is so verbose. Imagine this:
ArrayList list = new ArrayList();
ArrayList list2 = list.map(new UnaryOperation() {
public object call(object o) {
});
ArrayList list2 = list.map({ |object o|
It may not be possible because the exact interface to implement in the anonymous inner class would have to be derived from the method being called, which might be overloaded.
Anyway, I'd love to be able to use the terse rubyesque style in java, it feels a lot more declarative and communicates much better than all the explicit looping in java, c, C++, C#, VB, VB.net etc.
Here's the thing in a nutshell as I see it. Up front design is not outlawed by XP, but the XP theory is that you can go faster if you skip it. More importantly if you have a big up front design you are likely to be more likely to stick to it, even when you realize that real life is different from the assumptions that you based your design on. You will then start living with adaptations and local fixes and your code starts growing these tumor-like work-arounds that will eventually kill your ability to maintain the code.
The really important thing in XP is that there is zero tolerance for bad code and incomprehensible design. Once it is realized that something could be made better another way it is changed to be that way. The automated tests greatly facilitate this.