Ask yourself how many of your problems are unique to your app. Chances are most of the things you need to do, have been done by thousands of other developers previously, in thousands of apps. If this wasn’t true, why do we find so many answers to our questions when we’re stuck and we choose to Google our problems? Phosphorus Five takes advantage of that fact, and facilitates for making it extremely easy to create reusable code and components. In fact, when you create your web apps in Phosphorus Five, you don’t create a monolithic app – It’s simply impossible. What you end up creating, is a whole range of reusable components, that you can put into your current app, and your next app. Since I have already created a whole range of different apps with Phosphorus Five and Hyperlambda, ranging from webmail clients to IDEs, there’s a component in Phosphorus Five for most of your needs. This literally allows you to create your app, almost exclusively using pre-built components, with a close to zero code base.
According to rumours I heard once, Visual Studio contains roughly 1.5 million lines of code. Hyper IDE contains 2429 lines of code, if you don’t count the comments and spacing. Visual Studio contains 617 times more code than Hyper IDE. Obviously Visual Studio contains tons of features that Hyper IDE does not. However, most of those features are things you’ll never miss, and things you didn’t even realise was there. In fact, I doubt there’s a single person in this world, including the project manager on the Visual Studio team, that can even mention every single feature in VS. Secondly, Hyper IDE has its own unique traits too, which Visual Studio does not. For instance, the ability to use it from your phone, access it from any terminal, granting write access to users only for specific files, etc, etc, etc. Being roughly 10x faster and more responsive for most tasks of course, also obviously helps. Being a gazillion times easier to extend, is also an extreme advantage. In fact, there’s a name for apps such as Visual Studio, it’s not a very flattering name either. The name we use for such apps is “bloatware”.
When I built Hyper IDE I already had all the main components I needed. This was the reason why I didn’t need more than 2429 lines of code. I had a CodeMirror editor widget, since I had already created one for Hypereval. I had a tree view Ajax widget, to show the files on disc. I had a toolbar widget, which I had already used in many other apps. I had modal windows from before. Etc, etc, etc.
Every time you reinvent the wheel, you are stealing from your employer
The above might sound drastic, but you as a developer have a cost. This is often an hourly cost. Implying if you do things you don’t have to do, you are indirectly stealing from your employer. You probably don’t intend to steal – However, your vanity and your “not invented here syndrome”, prevents you from seeing the truth. So you end up spending your employers money, to learn something, that is completely useless – Because you want to become the “best developer in the world”. This is literally stealing!
If you’re an average full stack software developer, ask yourself the following questions; How much CISC x86 assembly code do you know? How does the pipeline in the latest Intel CPU work? What is the L1 cache size of your web server? If you’re an average software developer, you’ll have no idea how to answer those questions. Sure, you can probably easily find the answers by using Google, if you need these answers. But the fact that you are now probably frenetically Googling trying to find the answers to the above questions illustrates my point. Below is a piece of code. If you don’t count its comments and spacing, there’s 27 lines of code in it.
* Creates a page with a tree widget in it, which displays
* all the folders on disc.
* Including Micro CSS file.
innerValue:Tree view widget
* This is our treeview widget.
* This one will be invoked when the tree needs items.
* It will be given an [_item-id] argument.
* We simply list the folders of the item the tree needs
* children for here.
Here is what it results in …
The only thing you need to know about the above code, is what it does, when to use it, and that it works! It’s secure, it’s extremely efficient on bandwidth, and it shows your folder structure on your disc. The same is true for your CPU. You don’t need to worry about how large its L1 cache is. You only need to know that it works. If you can understand how the above [.onexpand] Hyperlambda work, you can easily change it, to make it show other things, besides your folders.
In fact, if the above wasn’t true, the idea of “encapsulation” would be meaningless. You already use thousands of things you have no idea of how works. For instance, what is the implementation of System.String’s Clone method? I’ll give you a hint “return this;”. Now explain to me why that works, and doesn’t create problems if the same string is shared among multiple threads … 😉
99.9% of the world’s developers cannot answer the above question, without resorting to Google …
- PhD in useless information a
- Masters Degree in useless information b
- 10 years of experience in useless information c
- Etc …
Do you want to know a secret? There are few differences between the art of flipping a burger, and the art of creating software. Both can be optimised to the point where MacDonalds can serve a billion burgers every day, with each employee creating an average of 100 burgers during a day. And if you choose to not use the better approach to create your software, because of vanity – Not only are you damaging your employer, but you’re also spending intellectual energy, on teaching yourself something, that is completely useless 10 years from now. Don’t believe me? Ask some WinForms developer how useful his knowledge is today …
… or a FoxPro developer for that matter … 😉
May I suggest you spend some time maybe instead learning how to play chess, or maybe the Saxophone? At least that way you’ll end up with a tangible value, that has a measurable positive impact on your life. Maybe start swimming or exercising? If you’re the average software developer, God knows you need it!
For God’s sake punk software developer, get a life!
Don’t waste your life, learning something, that nobody cares about, and that will never have any benefit for you or anybody else in the long run – At least not unless you do it in your own time, and you find it interesting and challenging …
For the record, this article, and these ideas, is probably the reason for this.
The more you fight me, and my ideas, the more you prove my point!
Epilogue – 13 minutes after I submitted a link to this article to /r/programming on Reddit, it had 75% down votes. I suspect I was the only one who upvoted it though, implying 100% of those who voted for it, voted it down. A qualified guess, is that I will soon be banned from the group. However, I’ve been wrong before. If I get banned, I will add their reasons for banning me here, which I suspect is “obsessive self promotion” – Although you can only submit links there, and the quality of this article is obviously quite high. A piece of advice when it comes to my ideas is to make up your own mind. Simply because the more “senior” your developers are, the more resistance they tend to show towards my ideas …