Earlier quoted context omitted.
Hell, programming languages (typically) aren't optimized to your use case. You modify them to make them so. Good frameworks are the same way. I've already extended the hell out of Kohana to make it more useful to me. This is work I would have had to have done if I weren't using it, sure, but all the basic stuff is there all the same.
Sure, it just depends. Quite often, I've found that modifying someone elses code takes orders of magnitude longer, than just writing it yourself.
Why I Hate Frameworks
101–110 of 127 posts
Re: Why I Hate Frameworks
#102Earlier quoted context omitted.
Struck a nerve, huh? This was partially in jest (notice the lol), and I realize this is sometimes hard to convey in writing. Sorry. But there's also a lot of truth in it, too. No one is born a mediocre programmer. It's a choice. Notice I didn't say a "junior" programmer. There's a difference. A junior programmer has less experience, but has a good attitude, is willing to learn, and practice his or her craft to get be…
"Struck a nerve, huh?" Yes. I am not a great programmer. I only started caring about it a couple of years ago and since I don't have a real education in it I am very behind in many areas. I am trying to get better, but it's not easy. "No one is born a mediocre programmer. It's a choice." I don't know if I agree with this. Some people are born with incredible talent in various areas. Some people are just born musician…
You've just put yourself ahead of 95% of the millenials here by saying that. The only way to become great at ANYTHING is to admit that you aren't, and work on improving yourself.
Being junior isn't a bad thing. Everyone starts at the beginning, even the prodigies. The bad ones are juniors that attempt to skip the learning process by claiming to be great, not the ones who do like you are and put in the effort to learn.
The difference between you and the typical millenial, at least the ones that I've had the misfortune of working with over the years, is that they think they're good, and don't listen to the folks around them who've actually DONE the work before.
"I don't know if I agree with this. Some people are born with incredible talent in various areas."
The only talent humans are born with is the ability to construct their own future.
Those who lack talent and experience often believe that success is predicated on luck. They see spectacular photographs taken in times of perfect light, and say, "Wow, you were so lucky to get such gorgeous light right when you were there with your camera!"
The smart ones eventually come to realize that you make your own luck.
Re: Why I Hate Frameworks
#103Earlier quoted context omitted.
"Struck a nerve, huh?" Yes. I am not a great programmer. I only started caring about it a couple of years ago and since I don't have a real education in it I am very behind in many areas. I am trying to get better, but it's not easy. "No one is born a mediocre programmer. It's a choice." I don't know if I agree with this. Some people are born with incredible talent in various areas. Some people are just born musician…
The humility in your attitude is the mark of a good programmer, not a bad one. If you really are learning and working hard at it, you'll do fine, and I'd rather have you on my team than a lot of the (apparently) super-smart guys you're feeling inferior to. A nice thing about the programming world is that it's a sort of natural democracy. No one really knows how good they are.
I second that!
Re: Why I Hate Frameworks
#104Earlier quoted context omitted.
Sure, it just depends. Quite often, I've found that modifying someone elses code takes orders of magnitude longer, than just writing it yourself.
the difficulty of modifying somebody else's code is proportional to your own programming skill.
Would you rather build a porche, or try to convert a clapped out old volvo into a porche?
Tidying up rubbish, bad architecture choices, stupid coupling etc isn't fun. It's twice the work - fixing all the stuff they did stupidly, and then implementing it how it should be done.
Re: Why I Hate Frameworks
#105Earlier quoted context omitted.
Okay great. Well, you go ahead and hack up your project in assembler, making sure to build everything (including the network stack) from scratch. Let's have a race. If only all of our competitors were as misled and arrogant as you. :)
Thinking outside the box, and doing things in the non-approved way, is what gives you a competitive edge over your competition. If it makes sense to hack up a project in assembler, do it. It may give you a massive advantage.
My comment illustrates the fact that criticizing those two things in particular is beyond silly. Essentially, I'm saying: Where is the limit? Unless you code everything, from scratch, every time, in assembler... You're using a high level language or a framework.
And you should be... The main point of them is to save time. They don't solve all problems obviously, but they solve the kinds of problems that you don't want to solve over and over and over.
Re: Why I Hate Frameworks
#106Here's the dirty little secret that no one wants to talk about... The purpose of "assisters" like frameworks and higher level languages is NOT to make good progammers more efficient. It's to make mediocre programmers more likely to produce something of value and to make poor programmers capable of producing anything at all. And if the bell curve tells us anything at all, it's that these "tools" target 90% of all prog…
If the details of passing data over HTTP and interacting with a database aren't a critical part of my project, I'm not going to do it by hand. I'll find some existing library or framework to do it for me. It's not that I can't produce something without help. It's that I have a problem I want to solve, and it isn't how to communicate over HTTP or store and fetch my data efficiently.
Re: Why I Hate Frameworks
#107Over-complexity is common in the Java space. I was aghast at using JMS. You make a Context so that you can tell it to make a ConnectionFactory, so that you can then ask that thing for a Connection, then you finally get to login . You can then instantiate Producers and Consumers and finally get messages. Why do I need to have 5 different objects when one would do? Having 5 different objects did absolutely nothing for…
"""Over-complexity is common in the Java space.""" Yes, in a SPECIFIC area of the Java space. There is a huge group of people who believe that J2EE and its complexities are a major pain the ass. That is why great frameworks like Spring, Guice or Stripes exist. Sun loves you when you use J2EE/JSF/EJB/JMS/JWHATEVER. But there are serious alternatives that are more lightweight, easier and less intrusive. Of course you w…
Someone comes up with a tool that's great for a specific job. Later, someone else comes along with a slightly different problem and the tool changes a little to accomodate them. Then a few others. Before you know it every feature under the sun is added to handle every possible scenario.
Now you're stuck with crappy middleware. It does a decent enough job after you configure it properly and strip it down to only the modules that apply to your specific problem. It's not so bad because you've been using it for a while and you know it inside and out. Plus, it can be used to solve everything. It can probably even cure cancer with the right module and proper configuration.
But sooner or later someone else comes along, decides this nifty universal tool is a steaming pile of shit and sets out to invent something simpler and less bloated. And it will only be better because it doesn't have everything, including the kitchen sink, bolted onto it. It's focused and lean. But then someone comes along with a slightly different problem than what it was intended to solve and the hot new framework with all the buzz starts going bad just like the last one.
Look at Stripes. It's just a better version of Struts2 which was based on Webwork which was intended to be a better Struts 1. Eventually, more and more cruft will be added to Stripes so it becomes as bad as what it was designed to replace and someone will come along and invent a better Stripes.
In my opinion, this is the biggest problem with frameworks. Many developers prefer to have a universal tool instead of having several that are good for different jobs so we end up with this cycle of cruft.
Re: Why I Hate Frameworks
#108Earlier quoted context omitted.
"Struck a nerve, huh?" Yes. I am not a great programmer. I only started caring about it a couple of years ago and since I don't have a real education in it I am very behind in many areas. I am trying to get better, but it's not easy. "No one is born a mediocre programmer. It's a choice." I don't know if I agree with this. Some people are born with incredible talent in various areas. Some people are just born musician…
...don't have a real education in it I am very behind in many areas... Who isn't? Don't sell yourself short. No matter how long you play guitar, you're not going to be Jimi Hendrix. You don't have to code like Jimi Hendrix to be a great programmer. (Oddly, I suspect that if I had to maintain his code, I'd probably be going nuts.) You just have to get your job done, work well with others, and leave something maintaina…
Re: Why I Hate Frameworks
#109Earlier quoted context omitted.
"minus maybe WebObjects" What made WO great were the tools. There was still complexity there, but WOBuilder and EOModeler made the whole process very productive. You could think of your data model, your interface, and your business logic independently of each other, and then use the tools to hook them together in a way that made sense. Because of the way the tools were designed, they actually made using good design f…
That would be Smalltalk not SmallTalk , and some of us still use it, daily, for web apps. It might not be in wide use, but it isn't on the scrap heap.
Re: Why I Hate Frameworks
#110Earlier quoted context omitted.
Perfect thing to show people, when they want to know if Java is a good fit for their problem. Even a Pointy Haired Boss, shown this, might understand why Rails or Django or something might be a better way to go than dealing with this. EDIT: OK, so instead of Java, that should read "to know if enterprisey Java frameworks are a good fit for their problem." The irony is, that I just was IM'ing a friend about how this is…
Java is not the problem, the architecture is the problem. If you try hard enough, you can make something unwieldy and atrocious in ANY language. That's why enterprise architects get the big bucks.