Is Java Cross-IDE plugin development possible? - java

This is a simple yes or no answer out of curiosity.
I've seen some pretty decent cross-platform java tools such as Codemane One (capable of generating applications for multiple mobile platforms out of a sigle Java codebase). They handle major API differences and are able to generate cross-platform UI layers.
I am wondering if anyone is trying to accomplish the same thing for IDE plugin development? IDEs underlying platforms and development models are so complex that, even when they are written in the same language (such as Java), you end up developing separate plugins for each IDE.
So, is there a equivalent of Codename One targeting IDE plugin development? Is anyone working on that? (Obscure academic research is ok if they have developed something useful).

The Java Specification Request 198 "A Standard Extension API for Integrated Development Environments" was released in 2006. However, nothing major seems to have happened from then. So, basically the answer is no.

Related

can i develop a multiple platform project -windows/Android- entirely with a single cross-platform language?

as i'm still learning, i'm not sure what tools, frameworks, even languages i'm gonna work with..
so i'm working on a simple project that got windows side and android side.. that obviously needs at least 2 languages to get it done, but it's impossible that i can learn those languages and know how to deal with their frameworks to get the job done
so is there a language i can develop the entire project(windows & android) with, and without need to any other language no matter what or how many tools or methods im gonna use to make it work?
-note: i know java is essential for the android side, so that's the point im talking about.... "entirely"
I would recommend you giving a loot at Flutter, it's not like native windows but it can produce applications for Android, iOS and web with a single codebase. It's really intuitive to use and the apps built with it work really well.
You can also take a look at React Native expect you need a Native app that you have to use Java as the core language if not give a trial to this
I notice you've tagged this with C#. To answer your question: that. You can write Android apps in it as well via a library called Xamarin that Microsoft bought out and has integrated into the platform.

What is the differnce between a software framework and a software platform?

I have seen the use of the word "platform" and the word "framework" used interchangeably. I would like to get some input on the subject. If someone could answer these questions, it might clear it up for me...
Is .NET a framework or platform?
From the product side, would Visual Studio be considered a Platform?
What would JavaScript be considered?
I am confused. :)
Thank you for your time.
I would say that a platform is something you build on top of -- your OS, an ORM or a set of services provided by an API.
A framework is something you use to build up inside of -- think ASP.Net, WCF or .Net itself.
The platform has functionality which you are extending, while by itself the framework does nothing until you utilize it to create an app.
.NET is a Microsoft Framework
Visual Studio is an IDE
JavaScript is a programming language
A platform IMO is a system, a kind of environment, can consist of a number of different frameworks working together. http://en.wikipedia.org/wiki/Computing_platform
Framework is a toolkit to help you get things done quicker and with conventions so everyone is on the same page.
I can simplify you a little things:
we can say that Windows OS is a "platefom" but about. Net is a "framework"
Generally:
Framework is a set of components that are used to create foundations, architecture and outline for a software.
A platform is formed by the assembly equipment such as a PC and an operating system.

Starting with Android: Java or Python (SL4A)

I just ordered an Android smartphone and want to start playing around with creating my own applications. Now the question is which language to use, the native Java or Python using SL4A (former ASE).
I tend to Python, as I know it much better than Java, but I'm wondering what I would be missing using a "second class" language on Android. On the SL4A website it is also stated to be alpha quality software, which is not exactly encouraging.
I'm also not quite sure what the limitations of the scripting environment are and if they would be problematic.
At the moment you cannot create a releasable program with Python (or any other scripting language) using SL4A. I have heard rumours that this is something Google is working on, but even if they do enable it Python apps are likely to be slow and power-hungry compared to Java. Also the scripting API only gives you access to a limited subset of the native Java API. I would not consider using SL4A for serious development work at the moment, only for one-off scripts and prototyping.
Take a look at Scala. It is a statically typed language on the JVM, but uses type inference to remove most of the noise that you get in Java. It also fully supports functional programming, and has a lot of pythonish features. Because it is statically typed it is as efficient as straight Java with none of the disadvantages. IMHO it is the language that Java should have been in the first place.
A lot of people are blogging about using Scala on Android, so Google around for more information.
More likely will depend what type of applications you will develop.
I would start with Java to become familiar with Android SDK. Anyway first you need to look into some examples, tutorials. Most of them are done in Java, and only a few, probably on the dev site of SL4A for that.
Also there is native development Android NDK, that can be programmed with C++.
But anyway Java rules for general applications.
Adding an update to Dave Kirby's answer:
Issue 55, Distribute scripts as APKs, in the issue tracker at SL4A deals specifically with that.
There is a solution being worked out (may be complete by now) described at SharingScripts. The only issue seems to be that you need to have a interpreter APK already installed.
you may want to check out Ruboto it is a framework for developing Android apps based on JRuby which means your JRuby code can call Android APIs and can also be called back from the Android Java side.
Here is an introduction article .
Consider ising Kivy, if you want to write Android apps with Python. The process of packing script to .apk file is described here.
The problem is, resulting .apk will be big (~7Mb for 300Kb data). It is obvious, because you need to pack there Python runtime and all libraries.
Another solution I have heard of, is Pygame for Android, but it works on lower lewel, so you need to draw graphics manually.
Unfortunately, I have not tried any of this ways yet, but it looks, that I'm going to start using kivy soon.

Is it possible to use Visual Studio as an IDE for Google Web Toolkit?

As a long time user of Visual Studio, I feel comfortable using this as my primary IDE for editing code (I primarily code in C#/ASP.NET). Lately I've been looking more in depth into the Google Web Toolkit (or GWT) as a potential tool for building rapid web client tools for the web. I would therefore like to know whether it is possible to edit Java syntax, and otherwise set Visual Studio up to built web applications for GWT?
The option i m using is using Eclipse with an IntelliJ Idea key mapping ( i m a resharper fan and I miss it)
Another option is take the plunge and get IntelliJ Idea, its a fantastic IDE and it was really easy to get used to it, it has some nice pluggins for GWT development too
Cheers
What is Visual Studio's support for Java like, I assuming that its GWT support is not as good. ;)
I think you are better off using an IDE which actually supports GWT.
You could have a look at http://www.jetbrains.com/idea/features/gwt.html The demo is rather old (from 2006) but if you haven't seen IntelliJ it might be interesting.
Visual Studio used to be the best Java IDE in the 90's.
Since then much better alternatives came out.
The 3 most commonly used right now are:
Eclipse
NetBeans
IntelliJ.
Microsoft stopped supporting Java development a long time ago. At that time Java was still at 1.3. With Java 1.5 the language was extended with generics and other constructs that Visual Studio will certainly not support.
If you manage to use Visual Studio for Java (or maybe J# could work?), integrate Maven in it and then use the maven gwt plugin to translate the java to ajax, it shoooould be possible.
But this is just an idea, would probably take a lot of efford, if it works at all.

Why Java is still used in web development?

Why Java is still used in web development? I'm just curious..
There are a number of reasons:
1. It is by no means a dead language. There are thousands of Java developers out there.
2. Many available Java developers means that it relatively easy to find maintenance programmers if necessary.
3. The Java / J2EE architecture is robust and reasonably elegant. It makes it possible to architect well built applications.
4. The free tools available for it are enterprise ready. For example, Apache / Tomcat / JBoss are a solid foundation to build a web-app from.
5. Excellent support for developers. Eclipse is one of the best developer platforms available. Ant and Maven support for Java is excellent.
6. There is a good availability of third-party (and open-source) libraries and Eclipse plug-ins for most of the additional functionality that might be needed but does not come in the core libraries.
7. There is also great support tools from commercial vendors: ORacle; IBM / Rational; etc.
8. Updated versions with newer language constructs are constantly being developed.
In short, it is a good tool for the job. It is compares favourably to other development platforms (.Net, Ruby, etc), and perhaps is better than some.
Simple. It's a cross platform environment, that is clearly defined, and controlled. Sure, Sun has a big deal of say in what is available in the Java environment, but there is plenty of 3rd party support and development in the Java environment.
Yes, Java applications start up slightly slower than Native applications, but take a look at VUZE... Once it's started, it's nearly native speed (or at least it was when I was using it). With the JIT (Just in Time) compilers, code caching, and other features, there isn't much of a reason that there would be a major speed penalty...
One big reason I think is because it's platform independent meaning they can easily run on all operating systems as long as you have the Java Runtime Environment installed. This could allow you to, for example, compile code in Windows and deploy on Unix.
I would also add that while this is only a con against .Net, your application server doesn't have to be Windows so it is cheaper to throw more hardware at it.
For the same reason as why COBOL and FORTRAN still exist. Because the language has proven itself to be robust and reliable.
Compare it with cars. Some people want the latest models because it has more power, better speed, improved features and whatever more. Others will just use a reliable car that's made to last for many years without much need for additional maintenance. Some buy a new car every 3 years, others will use their cars for half a century or more.
When talking about Java & the web, people seem to happily mix things by concentrating on Java applications deployed with Web Start (or even Applets), and forgetting that Java is a common language for implementing plain old dynamic web sites (or web applications). The latter is especially true for larger, more "enterprisey" systems. Even if on the desktop Java never really took off, on the server side it certainly did.
Without going into much detail, a couple of reasons why Java is used for creating web sites / applications:
It's a tried and true approach for building large-scale web apps. Either using just the basic (Java EE) technologies of Servlets and JSP, or newer frameworks built on top of those, such as JSF, Wicket or Google Web Toolkit. (Just one example of high scalability: Gmail is implemented in Java, using Google Web Toolkit.)
A mind-boggling amount of Java libraries exist, for all kinds of tasks — both open-source and commercial ones. If you need some in the backend of your app it may make a lot of sense to do the whole app using the same technology.
There are a lot of skilled Java developers out there — something that may affect tech desicions when launching (larger) projects
When creating a web interface for, or integrating into, an existing Java enterprise system (which are common) it may be beneficial to use the same language
Edit: I also agree with Doug about the tools and developer support. For example, IntelliJ IDEA may well be the most advanced IDE for any language (and I've heard this also from people who've used Eclipse and Visual Studio extensively... ;-) )
It's ubiquitous. The tools are great across the board. It's powerful. The community is huge. There is an amazing amount of available libraries / products / toolkits / frameworks. The JVM is great.
You can build cathedrals with this language. Those tend to stand for centuries.
Since Java doesn't run on the iPad, doesn't that hurt Java web development? Developing a web application that supports desktop and mobile is a possible path, but if your site uses Java or Flash, you have eliminated that opportunity.
We have a web application that is for both desktop and mobile (supports swiping, zooming, and such using jQuery). We decided against Java, Flash, and Silverlight because they do not work with iPad. The iPad is a growing base and web applications will have to keep up to support it.
It will be interesting to see how this affects web development with Java... time will tell.

Categories