Wednesday 25 May 2016

Top 40 Core Java Interview Questions Answers from Telephonic Round

Here is my another post about preparing for Java Interviews, this time we will take a look at 40 core Java questions from telephonic round of Java Programming interviews. Phone interviews are usually the first step to screen candidate after selecting his resume. Since its easy to call a candidate then to schedule a face-to-face interview, book rooms and arrange for meeting, telephonic round of interviews are quite popular now days. There were days only one telephonic round of interview was enough but now days, its almost two and three round of phone interview with different team members. Key to success in telephonic interview is to the point and concise answer. Since Interviewer wants to cover lot of things on telephonic round, they appreciate to the point answer instead of blah blah and dragging answer for sake of time. Always remember, its your time to make impression also so make sure you have good phone, fully charged and use voice modulation technique to be as clear as possible. Even if you don't know the answer, think a loud, interviewer appreciate ability to think and some time that proves to be decisive as well.




40 Core Java Interview Questions with Answers
Core Java Interview Questions answers from telephonic Interview
Here is my list of 40 core Java based questions which frequently appear on telephonic round of Interview. These questions touch based of important core java concepts e.g. String, Thread basics, multi-threading, inter thread communication, Java Collection framework, Serialization, Object oriented programming concepts and Exception handling. If you have faced couple of Java interviews, you will sure have seen some of these questions already. I have provided just enough answer for the sake of telephonic interview, but if you want to know more, you can always check the detailed answer link.


1) Difference between String, StringBuffer and StringBuilder in Java?
 (detailed answer)
String is immutable while both StringBuffer and StringBuilder is mutable, which means any change e.g. converting String to upper case or trimming white space will produce another instance rather than changing the same instance. On later two, StringBuffer is synchronized while StringBuilder is not, in fact its a ditto replacement of StringBuffer added in Java 1.5.


2) Difference between extends Thread vs implements Runnable in Java?
 (detailed answer)
Difference comes from the fact that you can only extend one class in Java, which means if you extend Thread class you lose your opportunity to extend another class, on the other hand if you implement Runnable, you can still extend another class.


3) Difference between Runnable and Callable interface in Java?
 (detailed answer)
Runnable was the only way to implement a task in Java which can be executed in parallel before JDK 1.5 adds Callable. Just like Runnable, Callable also defines a single call() method but unlike run() it can return values and throw exceptions.


4) Difference between ArrayList and LinkedList in Java?
 (detailed answer)
In short, ArrayList is backed by array in Java, while LinkedList is just collection of nodes, similar to linked list data structure. ArrayList also provides random search if you know the index, while LinkedList only allows sequential search. On other hand, adding and removing element from middle is efficient in LinkedList as compared to ArrayList because it only require to modify links and no other element is rearranged.


5) What is difference between wait and notify in Java?
 (detailed answer)
Both wait and notify methods are used for inter thread communication, where wait is used to pause the thread on a condition and notify is used to send
 notification to waiting threads. Both must be called from synchronized context e.g. synchronized method or block.


6) Difference between HashMap and Hashtable in Java?
 (detailed answer)
Though both HashMap and Hashtable are based upon hash table data structure, there are subtle difference between them. HashMap is non synchronized while Hashtable is synchronized and because of that HashMap is faster than Hashtable, as there is no cost of synchronization associated with it. One more minor difference is that HashMap allows a null key but Hashtable doesn't.


7) Difference between TreeSet and TreeMap in Java?
 (detailed answer)
Though both are sorted collection, TreeSet is essentially a Set data structure which doesn't allow duplicate and TreeMap is an implementation of Map interface. In reality, TreeSet is implemented via a TreeMap, much like how HashSet is implemented using HashMap.


8) Write a Java program to print Fibonacci series?
 (solution)
Fibonacci series is a series of number on which a number is equal to sum of previous two numbers i.e.
f(n) = f(n-1) + f(n-2). This program is used to teach recursion to students but you can also solve it without recursion. Check out the solution for both iterative and recursive solution of this problem. In telephonic interview, this question is not that common but sometime interviewer also wants to check your problem solving skill using such questions.


9) Write a Java program to check if a number is Prime or not?
 (solution)
A number is said prime if it is not divisible by any other number except itself. 1 is not considered prime, so your check must start with 2. Simplest
 solution of this to check every number until the number itself to see if its divisible or not. When Interviewer will ask you to improve, you can say that checking until square root of the number. If you can further improve the algorithm, you will more impress your interviewer. check out the solution for how to do this in Java


10) How to Swap two numbers without using temp variable?
 (solution)
This question is ages old. I have first seen this question way back in 2005 but I am sure its even older than that. Good thing about this problem is that except XOR trick all
 solution has some flaws, which is used to test whether candidate really knows his stuff or not. Check out the solution for all three possiblesolution and drawback of each.


11) How to check if linked list contains loop in Java?
 (solution)
This is another problem solving question which is very popular in telephonic and screening  round. This is a great question to test problem solving skill of candidate, especially if he has not seen this question before. It also has a nice little followup to find the starting of the loop. See the
 solution for a Java program which finds loop in singly linked.


12) Write Java program to reverse String without using API?
 (solution)
One more question to test problem solving skill of candidate. You wouldn't expect these kind of question in telephonic round of Java interview but these questions have now become norms. All interviewer is looking it for logic, you don't need to write the code but you should be able to think of
 solution.


13) Difference between Serializable and Externalizable in Java?
 (detailed answer)
Serializable is a marker interface with no methods defined it but Externalizable interface has two methods defined on it e.g.
 readExternal() and writeExternal() which allows you to control the serialization process. Serializable uses default serialization process which can be very slow for some application.


14) Difference between transient and volatile in Java?
 (detailed answer)
transient keyword is used in Serialization while volatile is used in multi-threading. If you want to exclude a variable from serialization process then mark that variable transient. Similar to static variable, transient variables are not serialized. On the other hand, volatile variables are signal to compiler that multiple threads are interested on this variable and it shouldn't reorder its access. volatile variable also follows happens-before relationship, which means any write happens before any read in volatile variable. You can also make non atomic access of double and long variable atomic using volatile.


15) Difference between abstract class and interface?
 (detailed answer)
From Java 8 onwards difference between abstract class and interface in Java has minimized, now even interface can have implementation in terms of default and static method. BTW, in Java you can still extend just one class but can extend multiple inheritance. Abstract class is used to provide default implementation with just something left to customize, while interface is used heavily in API to define contract of a class.


16) Difference between Association, Composition and Aggregation?
 (detailed answer)
Between association, composition and aggregation, composition is strongest. If part can exists without whole than relationship between two class is known as aggregation but if part cannot exists without whole than relationship between two class is known as composition. Between Inheritance and composition, later provides more flexible design.


17) What is difference between FileInputStream and FileReader in Java?
 (detailed answer)
Main difference between FileInputStream and FileReader is that former is used to read binary data while later is used to read text data, which means later also consider character encoding while converting bytes to text in Java.


18) How do you convert bytes to character in Java?
 (detailed answer)
Bytes are converted to character or text data using character encoding. When you read binary data from a file or network endpoint, you provide a character encoding to convert those bytes to equivalent character. Incorrect choice of character encoding may alter meaning of message by interpreting it differently.


19) Can we have return statement in finally clause? What will happen?
 (detailed answer)
Yes, you can use return statement in finally block, but it will not prevent finally block from being executed. BTW, if you also used return statement in try block then return value from finally block with override whatever is returned from try block.


20) Can you override static method in Java?
 (detailed answer)
No, you cannot override static method in Java because they are resolved at compile time rather than runtime. Though you can declare and define static method of same name and signature in child class, this will hide the static method from parent class, that's why it is also known as method hiding in Java.


21) Difference between private, public, package and protected in Java?
 (detailed answer)
All four are access modifier in Java but only private, public and protected are modifier keyword. There is no keyword for package access, its default in Java. Which means if you don't specify any access modifier than by default that will be accessible inside the same package. Private variables are only accessible in the class they are declared, protected are accessible inside all classes in same package but only on sub class outside package and public variables e.g. method, class or variables are accessible anywhere. This is highest level of access modifier and provide lowest form of encapsulation.


22) 5 Coding best practices you learned in Java?
 (detailed answer)
If you are developing on a programming language for couple of years, you sure knows lots of best practices, by asking couple of them, Interviewer just checking that you know your trade well. Here are my 5 Java best practices :
- Always name your thread, this will help immensely in debugging.
- Use StringBuilder for string concatenation
- Always specify size of Collection, this will save lot of time spent on resizing
- Always declare variable private and final unless you have good reason.
- Always code on interfaces instead of implementation
- Provide dependency to method instead they get it by themselves, this will make your code unit testable.


23) Write a Program to find maximum and minimum number in array?
 (solution)
This is another coding question test problem solving ability of candidate. Be ready for couple of follow up as well depending upon how you answer this question. Simplest way which comes in mind is to sort the array and then pick the top and bottom element. For a better answer see the solution.


24) Write a program to reverse Array in place?
 (solution)
Another problem solving question for Java programmers. Key point here is that you need to reverse the array in place, which means you cannot use additional buffer, one or two variable will be fine. Note you cannot use any library code, you need to create your own logic.


25) Write a program to reverse a number in Java?
 (solution)
This is an interesting program for a very junior programmer, right from the college but can sometime puzzle developer with couple of years of experience as well. Most of these developer does very little coding so they found these kind of questions challenging. Here the trick is to get the last digit of the number by using modulus operator (%) and reducing number in each go by using division operator (/). See the solution for how to do that in Java.


26) Write a Program to calculate factorial in Java?
 (solution)
Another beginners coding problem, good for telephonic interview because you can differentiate a guy who can write program to the guy who can't. It's also good to see if developer is familiar with both recursive and iterative algorithm and pros and cons of each. You can also ask lots of follow up e.g. how to improve performance of algorithm? Since factorial of a number is equal to number multiplied by factorial of previous number, you can cache those value instead of recalculating them, this will impress your interviewer a bit. See the solution for full code example.


27) What is difference between calling start() and run() method of Thread?
 (detailed answer)
You might have heard this question before, if calling
 start() method calls the run() method eventually then why not just call the run() method? Well the difference is, start method also starts a new thread. If you call the run method directly then it will run on same thread not on different thread, which is what original intention would be.


28) Write a Program to solve Producer Consumer problem in Java?
 (solution)
A very good question to check if candidate can write inter thread communication code or not. If a guy can write producer consumer solution by hand and point out critical section and how to protect, how to communicate with thread then he is good enough to write and maintain your concurrent Java program. This is the very minimum requirement for a Java developer and that's why I love this question, it also has several solution e.g. by using concurrent collections like blocking queue, by using wait and notify and by using other synchronizers of Java 5 e.g. semaphores.


29) How to find middle element of linked list in one pass?
 (solution)
Another simple problem solving question for warm up. In a singly linked list you can only traverse in one direction and if you don't know the size then you cannot write a loop to exactly find out middle element, that is the crux of the problem. One solution is by using two pointers, fast and slow. Slower pointer moves 1 step when faster pointer move to 2 steps, causing slow to point to middle when fast is pointing to end of the list i.e. null. Check out solution for Java code sample.


30) What is equlas() and hashCode() contract in Java? Where does it used?
 (detailed answer)
One of the must ask question in Java telephonic interview. If a guy doesn't know about
 equals() andhashCode() then he is probably not worth pursuing further because its the core of the Java fundamentals. The key point of contract is that if two objects are equal by equals() method then they must have same hashcode, but unequal object can also have same hashcode, which is the cause of collision on hash table based collection e.g HashMap. When you override equals() you must remember to override hashCode() method to keep the contract valid.


31) Why wait and notify methods are declared in Object class?
 (detailed answer)
This question is more to find out how much experience you really have and what is your thinking towards Java API and its design decision. Similar question is why String is immutable in Java? Well, true answer can only be given by Java designers but you can reason something. For example, wait and notify methods are associated with locks which is owned by object not thread, and that's why it make sense to keep those method on java.lang.Object class. See the detailed answer for more discussion and reasoning.


32) How does HashSet works in Java?
 (detailed answer)
HashSet is internally implemented using HashMap in Java and this is what your interviewer wants to hear. He could then quiz you with some common sense based question e.g. how can you use HashMap because its needs two object key and value? what is the value in case of HashSet? Well, in case of HashSet a dummy object is used as value and key objects are the actual element on Set point of view. Since HashMap doesn't allow duplicate key it also follows contract of set data structure to not allow duplicates. See detailed answer for more analysis and explanation.


33) What is difference between synchronize and concurrent Collection in Java?
 (detailed answer)
There was time, before Java 1.5 when you only have synchronized collection if you need them in a multi-threaded Java program. Those classes were plagued with several issue most importantly performance because they lock the whole collection or map whenever a thread reads or writes. To address those issue, Java released couple of Concurrent collection classes e.g.
 ConcurrentHashMap,CopyOnWriteArrayList and BlockingQueue to provide more scalability and performance.


34) What is difference between Iterator and Enumeration in Java?
 (detailed answer)
Main difference is that Iterator was introduced in place of Enumeration. It also allows you to remove elements from collection while traversing which was not possible with Enumeration. The methods of Iterator e.g.
 hasNext() and next() are also more concise then corresponding methods in Enumeration e.g. hasMoreElements(). You should always use Iterator in your Java code as Enumeration may get deprecated and removed in future Java release.


35) What is difference between Overloading and Overriding in Java?
 (detailed answer)
Another frequently asked question from telephonic round of Java interviews. Though both overloading and overriding are related with methods of same names but they have different characteristics e.g.overloaded methods must have different method signature than original method but overridden method must have same signature. Also, overloaded methods are resolved at compiled time while overridden methods are resolved at runtime. See the detailed answer for more analysis and differences.


36) Difference between static and dynamic binding in Java?
 (detailed answer)
This is usually asked as follow-up of previous question, static binding is related to overloaded method and dynamic binding is related to overridden method. Method like private, final and static are resolved using static binding at compile time but virtual methods which can be overridden are resolved using dynamic binding at runtime.


37) Difference between Comparator and Comparable in Java?
 (detailed answer)
This is one more basic concept, I expect every Java candidate to know. You will deal with them on every Java project. Several core classes in Java e.g. String, Integer implements Comparable to define their natural sorting order and if you define a value class or a domain object then you should also implement Comparable and define natural ordering of your object. Main difference between these two is that, you could create multiple Comparator to define multiple sorting order based upon different attribute of object. Also, In order to implement Comparable you must have access of the class or code, but you can use Comparator without having source code of class, all you need is the JAR file of particular object. That's why Comparator is very powerful to implement custom sorting order and from Java 8 you can do it even more elegantly, as seen here.


38) How do you sort ArrayList in descending order?
 (solution)
You can use
 Collections.sort() method with reverse Comparator, which can sort elements in the reverse order of their natural order e.g.

List<String> listOfString = Arrays.asList("London""Tokyo""NewYork");
Collections.sort(listOfString, Collections.reverseOrder());
System.out.println(listOfString); //[Tokyo, NewYork, London]


39) What is difference between PATH and CLASSPATH in Java?
 (detailed answer)
PATH is an environment variable which points to Java binary which is used to run Java programs. CLASSPATH is another environment variable which points to Java class files or JAR files. If a class is not found in CLASSPATH then Java throws ClassNotFoundException.


40) What is difference between Checked and Unchecked Exception in Java?
 (detailed answer)
Checked exception ensures that handling of exception is provided and its verified by compiler also, while for throwing unchecked exception no special provision is needed e.g. throws clause. A method can throw unchecked exception without any throw clause.


That's all about
 40 Core Java Interview Questions from telephonic round. Don't take a phone interview lightly, its your first chance to impress your perspective employer. Given that you are not seeing your interviewer and just communicating with your voice, its little bit different than face-to-face interview. So always be calm, relaxed and answer questions to the point and precisely, speak slowly and make sure you are not in a place where your sound echoes e.g. on close stair case. Having a good phone, head set and being on good reception area is also very important. I have seen it many times where candidate lost on interview because not able to hear it properly or not able to understand question before answering them. I know some people take telephonic interviews on those secret places but if you do make sure your phone connectivity is enough.

If you like this tutorial and looking for some more interview questions for preparation checkout my amazing collection :
10 Advanced Core Java Interview Questions for Programmers (see here)
15 Java Enum based Interview Questions with Answers (check here)
21 Frequently asked Java Questions with Answers (see here)
Top 10 Linux and UNIX Interview Questions for Java Programmers (check here)
Top 20 SQL Query Interview Questions (see list)
Java Interview Questions for 2 to 3 Years Experienced Programmers (see here)
12 Multithreading and Concurrency Questions for Java Developers (check here)
10 Tough Java Questions from Interviews (see list)
Top 11 Coding Questions from Java Interviews with Answers (see here)
18 Good Java Design Pattern Questions for Senior Developers (see here)

15 Tricky Questions from Java Interviews with Answers (check here)




TAGS:          mkniit              sonu giri             kamalsharma              gniit help
Read More »

15 hot programming trends -- and 15 going cold


ice and fire






PROGRAMMING TRENDS THAT MIGHT SURPRISE THE BOSS, BUT SHOULDN'T SURPRISE YOU IN THE YEAR AHEAD


Programmers love to sneer at the world of fashion where trends blow through like breezes. Skirt lengths rise and fall, pigments come and go, ties get fatter, then thinner. But in the world of technology, rigor, science, math, and precision rule over fad.
That's not to say programming is a profession devoid of trends. The difference is that programming trends are driven by greater efficiency, increased customization, and ease-of-use. The new technologies that deliver one or more of these eclipse the previous generation. It's a meritocracy, not a whimsy-ocracy.
What follows is a list of what's hot -- and what's not -- among today's programmers. Not everyone will agree with what's A-listed, what's D-listed, and what's been left out. But that's what makes programming an endlessly fascinating profession: rapid change, passionate debate, sudden comebacks.
Hot: Preprocessors






Not: Full language stacks
It wasn't long ago that people who created a new programming language had to build everything that turned code into the bits fed to the silicon. Then someone figured out they could piggyback on the work that came before. Now people with a clever idea just write a preprocessor that translates the new code into something old with a rich set of libraries and APIs.
The folks who loved dynamic typing created Groovy, a simpler version of Java without the overly insistent punctuation. Those who wanted to fix JavaScript created CoffeeScript, a preprocessor that lets them to code, again, without the onerous punctuation. There seem to be dozens of languages like Scala or Clojure that run on the JVM, but there's only one JVM. Why reinvent the wheel?


Hot: JavaScript MV* frameworks






Not: JavaScript files
Long ago, everyone learned to write JavaScript to pop up an alert box or check to see that the email address in the form actually contained an @ sign. Now HTML AJAX apps are so sophisticated that few people start from scratch. It's simpler to adopt an elaborate framework and write a bit of glue code to implement your business logic. There are nowdozens of frameworks like Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS, and many more -- all ready to handle the events and content for your Web apps and pages.
Hot: CSS frameworks
Not: Generic Cascading Style Sheets
Once upon a time, adding a bit of pizzazz to a Web page meant opening the CSS file and including a new command like font-style:italic. Then you saved the file and went to lunch after a hard morning's work. Now Web pages are so sophisticated that it's impossible to fill a file with such simple commands. One tweak to a color and everything goes out of whack. It's like they say about conspiracies and ecologies: Everything is connected.
That's where CSS frameworks like SASS and its cousins Compass have found solid footing. They encourage literate, stable coding by offering programming constructs such as real variables, nesting blocks, and mix-ins. It may not sound like much newness in the programming layer, but it's a big leap forward for the design layer.
Hot: SVG + JavaScript on Canvas
Not: Flash
Flash has been driving people crazy for years, but the artists have always loved the results. The antialiased rendering looks great and many talented artists have built a deep stack of Flash code to offer sophisticated transitions and animations.
Now that the JavaScript layer has the ability to do much of the same, browser manufacturers and developers are cheering for the end of Flash. They see better integration with the DOM layer coming from new formats like SVG (Scalable Vector Graphics). The SVG and HTML comprise one big pile of tags, and that's often easier for Web developers to use. Then there are large APIs that offer elaborate drawing on the Canvas object, often with the help of video cards. Put them together and there few reasons to use Flash anymore.
Hot: Almost big data (analysis without Hadoop)
Not: Big data (with Hadoop)
Everyone likes to feel like the Big Man on Campus, and if they aren't, they're looking for a campus of the appropriate size where they can stand out. So it's no surprise that when the words "big data" started flowing through the executive suite, the suits started asking for the biggest, most powerful big data systems as if they were purchasing a yacht or a skyscraper.
The funny thing is, many problems aren't big enough to use the fanciest big data solutions. Sure, companies like Google or Yahoo track all of our Web browsing; they have data files measured in petabytes or yottabytes. But most companies have data sets that can easily fit in the RAM of a basic PC. I'm writing this on a PC with 16GB of RAM -- enough for a billion events with a handful of bytes. In most algorithms, the data doesn't need to be read into memory because streaming it from an SSD is fine.
There will be instances that demand the fast response times of dozens of machines in a Hadoop cloud running in parallel, but many will do just fine plugging along on a single machine without the hassles of coordination or communication.
Hot: Game frameworks
Not: Native game development
Once upon a time, game development meant hiring plenty of developers who wrote everything in C from scratch. Sure it cost a bazillion dollars, but it looked great. Now, no one can afford the luxury of custom code. Most games developers gave up their pride years ago and use libraries like Unity, Corona, or LibGDX to build their systems. They don't write C code as much as instructions for the libraries. Is it a shame that our games aren't handcrafted with pride but stamped out using the same engine? Most of the developers are relieved -- because they don't have to deal with the details, they can concentrate on the game play, narrative arc, characters, and art.
Hot: Single-page Web apps
Not: Websites
Remember when URLs pointed to Web pages filled with static text and images? How simple and quaint to put all information in a network of separate Web pages called a website. New Web apps are front ends to large databases filled with content. When the Web app wants information, it pulls it from the database and pours it into the local mold. There's no need to mark up the data with all the Web extras needed to build a Web page. The data layer is completely separate from the presentation and formatting layer. Here, the rise of mobile computing is another factor: a single, responsive-designed Web page that work like an app -- all the better to avoid the turmoil of the app stores.


Not: Native mobile apps
Let's say you have a great idea for some mobile content. You could rush off and write separate versions for iOS, Android, Windows 8, and maybe even BlackBerry OS or one of the others. Each requires a separate team speaking a different programming language. Then each platform's app store exerts its own pound of flesh before the app can be delivered to the users. Or you could just build one HTML app and put it on a website to run on all the platforms. If there's a change, you don't need to return to the app store, begging for a quick review of a bug fix. Now that the HTML layer is getting faster and running on faster chips, this approach can compete with native apps better on even more complicated and interactive apps.
Hot: Android
Not: iOS
Was it only a few years ago that lines snaked out of Apple's store? Times change. While the iPhone and iPad continue to have dedicated fans who love their rich, sophisticated UI, the raw sales numbers favor Android more and more. Some reports even say that more than 70 percent of phones sold were Androids.
The reason may be as simple as price. While iOS devices maintain a hefty price, the Android world is flooded with plenty of competition that's producing tablets for as low as one-fifth the price. Saving money is always a temptation.

But another factor may be the effect of open source. Anyone can compete in the marketplace -- and they do. There are bigAndroid tablets and little ones. There are Android cameras and even Android refrigerators. No one has to say, "Mother, may I?" to Google to innovate. If they have an idea, they follow their mind.
Hot: GPU
Not: CPU
When software was simple and the instructions were arranged in a nice line, the CPU was king of the computer because it did all of the heavy lifting. Now that video games are filled with extensive graphical routines that can run in parallel, the video card runs the show. It's easy to spend $500, $600, or more on a fancy video card, and some serious gamers use more than one. That's more than double the price of many basic desktops. Gamers aren't the only ones bragging about their GPU cards. Computer scientists are now converting many parallel applications to run hundreds of times faster on the GPU.
Hot: GitHub
Not: Résumés
Sure, you could learn something by reading a puffed-up list of accomplishments that include vice president of the junior high chess club. But reading someone's actual code is so much richer and more instructive. Do they write good comments? Do they waste too much time breaking things into tiny classes that do little? Is there a real architecture with room for expansion? All these questions can be answered by a glimpse at some code.
This is why participating in open source projects is becoming more and more important for finding a job. Sharing the code from a proprietary project is hard, but open source code can go everywhere.
Hot: Renting
Not: Buying
When Amazon rolled out its sales for computers and other electronics on Black Friday, the company forgot to include hype-worthy deals for its cloud. Give it time. Not so long ago, companies opened their own data center and hired their own staff to run the computers they purchased outright. Now they rent the computers, the data center, the staff, and even the software by the hour. No one wants the hassles of owning anything. It's all a good idea, at least until the website goes viral and you realize you're paying for everything by the click. Now if only Amazon finds a way to deliver the cloud with its drones, the trends will converge.
Hot: Web interfaces
Not: IDEs
A long time ago, people used a command-line compiler. Then someone integrated that with an editor and other tools to create the IDE. Now it's time for the IDE to be eclipsed (ha) by browser-based tools that let you edit the code, often of a working system. If you don't like how WordPress works, it comes with a built-in editor that lets you change the code right then and there. Microsoft's Azure lets you write JavaScript glue code right in its portal. These systems don't offer the best debugging environments and there's something dangerous about editing production code, but the idea has legs.
Hot: Node.js
Not: JavaEE, Ruby on Rails, PHP
The server world has always thrived on the threaded model that let the operating system indulge any wayward, inefficient, or dissolute behavior by programmers. Whatever foolish loop or wasteful computation programmers coded, the OS would balance performance by switching between the threads.
Then Node.js came along with the JavaScript callback model of programming, and the code ran really fast -- faster than anyone expected was possible from a toy language once used only for alert boxes. Suddenly the overhead of creating new threads became obvious and Node.js took off. Problems arise when programmers don't behave well, but the responsibility has largely been good for them. Making resource constraints obvious to programmers usually produces faster code.
The Node.js world also benefits from offering harmony between browser and server. The same code runs on both making it easier for developers to move around features and duplicate functionality. As a result, Node.js layers have become the hottest stacks on the Internet.
Hot: Hackerspaces
Not: College
One costs $250,000 for four years. The other charges about $50 a month, with big discounts for paying in advance. One uses the money to buy football stadiums, fancy houses for the president, flashy dorms, and four-color magazines. The other buys 3D printers, oscilloscopes, soldering irons, and more.
Hackerspaces are stepping up to nurture innovation without the outrageous overhead of the college industrial complex. They are creating the social networks that spawn startups and build wealth but without the bureaucracy and foolish consistencies Emerson called the "hobgoblin of little minds." Courses don't need to last an entire semester. Students don't need to start campaigning for admission a year before starting to learn. The ad-hoc nature is fast proving better suited for the rapidly moving world of technology.
This story, "15 hot programming trends -- and 15 going cold" was originally published by gniithelp.
RELATED TOPICS
Read More »