I think Program There are two types of employees: "active programmers" and "passive programmers ". "Active programmers" can select their own development methods, development languages and frameworks, and "passive programmers" passively accept the company's specified languages and development methods. In real life, such classification is not absolute. A programmer may assume different roles at different times, and "passive programmers" may have limited initiative. Such classification is not based on the popularity of programmers, the wealth, whether they start their own businesses or are employed by people. David Heinemeier Hansson is employed by 37 signal, but he can still build his own rails framework to complete the project. He should be an "active programmer ". The Firebird Database leader is also the founder of Interbase Database Jim Starkey. He sold his company to MySQL AB and had to work for MySQL. In some respects, he should be a "passive programmer ". Programmers in most third-world countries should belong to "passive programmers". They only program for a job to support their families, and they do not have the right to choose what they like. Programming Language Or the framework, because this is the company's choice for him, because if another option is selected, he may not be able to find a job. I once had a colleague who was about to leave me to recommend him a better programming framework, which could easily complete the production of a website. I recommended Zope and rails to him, he listened to my introduction and thought it was good. When I told him that he had to learn Python and Ruby programming languages, he looked stunned. "Can he find a job? ". This also expresses the ideas of most domestic programmers. Looking at the recruitment website, you will know that the programmer you need most now is a Java programmer, and the most important framework you need to know is struts. If you don't have a chance to get an interview, you don't have to "modify" your resume.
Some start-ups can choose their preferred programming languages and frameworks. Of course, they are a minority. If I can choose one, I certainly do not need Java for website applications. It is too troublesome to complete a simple task and it is difficult to quickly adapt to changes in requirements. Of course, I will not use PHP either, because I am used to object-oriented programming. I found a strange phenomenon: Most people who turn to the Ruby on Rails framework are programmers from the Java camp, while those who turn to the python framework Zope. Most Django programmers have ASP and PHP backgrounds. Because Ruby is a real object-oriented language, it also has the characteristics of the scripting language, and python is first a scripting language, it has some oo features. Java programmers can hardly bear to go back, so they chose Ruby, a language that is more object-oriented than Java, while PhP and ASP programmers do not have that heavy ideological burden, they chose Python probably because of itsCodeBeauty is much cleaner than ASP code in the "spaghetti" php they previously wrote. Both Python and Ruby are non-mainstream programming language development frameworks, which are very simple to use. They are actually a framework from the programmer's perspective. Why is the world of Java messy when Ruby comes out? I think the reason is still java. When Java Programmers take it for granted that program development should be so troublesome, the emergence of rails immediately made them feel cheated by these so-called popular Java frameworks and sun, which is so deep, so that some of them "do not return to the header" Left Java, instead of attacking Java. Among them, the famous man is Bruce Tate. This old man wrote two books that make a sensation in the Java World, spring: A developer's notebook and better, faster, lighter Java (this book won the jolt award and I have even read it). With the popularity of rails, this elder brother immediately fled the Java camp and wrote the book beyond Java, this section focuses on some non-Java frameworks, such as seaside of smalltalk and rails.
Why is Java so complicated? I have been thinking for a long time and come to the conclusion that Sun wants it to be so complicated. Why? Sun is not a good software company. Sun is best at developing specifications. It is similar to interfaces in Java programming, who often write Java programs, interface may be the most frequently used word, and any framework is full of interface-interface. Most programming books recommend interface-oriented programming (of course this is not a Java error, it is required by the design pattern, but Java will do its best ). Define the interface first, and then write different implementations for the interface. At least the default implementation is provided. So does Sun. Let's see how many J-hitting technologies are included in J2EE specifications, JDBC, JNI, JCA, JDO, JPA ...., today's JCP organization is even more so. Every time, a large number of specifications come into being. draft and final are filled with the Java World, which sun hopes to define, there will be a lot of vendors to implement it, and the Java software market will become bigger, so sun can rely on authorization and certification to get more money. You see Sun's stock is so depressed, but with such a strong liquidity, the reason is clear, as long as sun still has Java, it has everything. Sun hopes that Java will become more complex, just as programmers want the Perl code to be ugly. This can bring benefits. The complexity of Java has also led to the prosperity of other industries in the industry chain. For example, in the age of PHP and Perl popular Internet, it seems that there is no need for consultants for website development, when c/s is prevalent, there is no need for consultants for enterprise development. However, as J2EE gradually dominates enterprise-level development, the consulting industry has also begun to flourish. Enterprises invest a lot of money in Development Consulting. It is not clear how it works. I think it is better for most programmers, especially those who have their own ideas, to ask for advice from consulting companies. In my opinion, software development consultants seem to be "lawyers"-"representing greedy companies, making the world worse" (Alex's dialogue ). If foreign consultants want to solve objective development complexity through subjective efforts, the Consulting Industry in China may make complicated software development. I don't believe them. I 'd rather choose a software training instead of asking someone to show you how to develop it from start to end, because the level of consultants in China is lower than what you know in books, why should the company spend the money.
If you are an active programmer, will you follow Sun's baton? I want to leave the Java World. There are many opportunities to choose from, but the premise is: are you willing to leave Java. Most people think that it is not a good thing to change the status quo. learning a new language and framework means that all your past experiences will disappear, which is risky. For most programmers, programming is actually a job. It is no different from selling lunch boxes and loading machines. You only need to do your job well. People trying to change the status quo are suffering, as are people who know the difference, just as Neo is receiving red pills and blue pills. I bought a learning Perl book when I was studying Perl. The author of the book once said that learning Perl aims to allow myself to spend more time skiing, rasmus lerdorf, the founder of PHP, once said that he wanted to spend less time staring at his computer, but after so many years, he found that he still had to keep staring at the damn computer. In fact, I am not very interested in choosing a framework language. I just hope that I can complete my work in a simple way and save time to listen to music and watch movies. In fact, I am no different from people who do not want to change the status quo. They do not want to learn new things because they are familiar with the existing things and learn new frameworks, it is better to put the time on the play. My goal is the same. I want to learn more easily, so that I can spend more time playing. So every time I see a variety of technical forums filled with Java,. net, Ror, Python and other quarrels, I think it is very funny. In fact, it is meaningless to argue to maintain a language. Programming languages are just like English and computers. They are just a tool to do their work as easy as possible and improve the quality of life. For the sake of language, the framework is unnecessary for the framework. "Active programmers" can work in their own ways, which most people cannot. If possible, I also want to be an "active programmer ".
Source: http://likenote.blogspot.com/2006/09/vs.html