scala swing versus swt for cross platform development - scala

I'm a beginner programmer. Which one suites me better? I'm writing cross platform application. It would be nice if it will have native look. Easy html viewer api would be great.

SWT provides a native look out of the box (it uses the underlying platform's API to create GUI elements) and AFAIK, cannot be distinguished in appearance nor behaviour from the native widgets.
However, SWT is "non-portable", so it is limited to the platforms which have native SWT implementations- however, it's got Linux, Windows, OS X, Solaris, HPUX and AIX implementations, so you'll probably will have enough with that. You will also need to be careful to package your application- SWT makes things slightly more difficult than a pure Java app, IIRC.
Swing has a native look and feel, but it is not 100% accurate.
On the subject of HTML views, both provide components to do that. Check http://www.eclipse.org/swt/faq.php#browserplatforms for details on SWT's provided browser. Swing's built-in component is pretty primitive in comparison- you might want to look into alternative libraries.

Related

What is the performance hit from using SWT_AWT Bridge in Eclipse RCP

I am building an Eclipse RCP application that will eventually have section for NASA Worldwind AWT component. I will be using the SWT_AWT bridge to get the worldwind component embedded in an RCP application. I am trying to decide whether I should write other components using SWT, or use Swing all the way and embed everything using SWT_AWT bridge. The latter would allow me to use Swing, but not sure what the performance implications are?
If you are going to write an RCP application then it is best to stick to the native concepts and use SWT.
When you are going to write everything in Swing then there will be a performance penalty. How much, as always, depends on the hardware you are using. With todays hardware, assuming NASA has the funds, it would not be all that relevant.
What would be more relevant is the difference in UI. SWT renders with native widgets, Swing does not.
A good read is this article on the Swing in RCP [1]
[1] http://www.eclipse.org/articles/Article-Swing-SWT-Integration/

comparing GWT with its comparable tech

I am looking for a Technology that I can compare with GWT.
I was thinking about comparing GWT vs Ruby on Rail. But I am not sure if it is the best compare to pick.
If any one can give me some hints, I really appreciate it
It's hard to compare GWT to anything else.
The main idea behind GWT was to leverage existing tooling: debuggers, IDEs (refactoring, etc.), static analysis tools (findbugs, checkstyle, PMD), etc. The goal is not to provide a true emulation of Java in JavaScript; being able to use any existing Java library with GWT is a non-goal.
So, what is GWT?
GWT is a transpiler to JavaScript, much like CoffeeScript, TypeScript, Script#, Emscripten, Haxe and many more.
Unlike many others though, GWT development runs Java in a JVM rather than compiling to JS (Dart with its Dartium and dart2js works similarly), which allows you to use a Java debugger, and tools like JRebel for hot code replacement.
The compilation process is also pluggable with code/resource generators (deferred binding). This, combined with the static typing of Java, makes it possible to use dependency-injection tools such as GIN (Guice for GWT)
GWT is also an extensive library:
client-server communication protocols: GWT-RPC and RequestFactory (RequestFactory can also be used from a Java client, such as an Android application; RequestFactory can also be used to consume JSON-RPC services)
JSON marshalling through AutoBeans
widgets, which makes people sometimes compare GWT to Swing in the way to build UIs (though if you build GWT UIs like you do Swing UIs, you're doomed)
UiBinder is similar to Flex's MXML, .NET's XAML, or Gnome's Glade; but can also be used to output HTML rather than build widgets, which makes it more likeā€¦ AngularJS maybe?
SafeHtmlTemplates can be seen as similar to Mustache.js
CssResources are similar to Closure Stylesheet, or Sass or Less, though with fewer features
Editors are somehow comparable to AngularJS bindings (see discussion at https://plus.google.com/114156500057804356924/posts/LSNj2zTZo78)
Depending on the facet you're looking at, you can compare GWT with many other tools; but most of all, GWT is a client-side tool, so one thing you can't compare it with is Rails.
GWT:
GWT architecture needs deep understanding to be used completely. It is built for advanced users.
Rails:
Rails is simple and aimed at writing less code. Suitable for beginners in web development.
Here is a complete PDF about comparison .
Simple JavaScript MV* frameworks are numerous and easy to compare. However, at the enterprise scale - there are far fewer frameworks and each are very different. A few others:
ExtJS - A complex and enterprise scale JavaScript framework
TypeScript - A new language developed by Microsoft that is strongly typed and compiles to JavaScipt
Closure - A Google technology for type-checking JavaScript
As you can see, none of these are quite the same as GWT, yet all are targeted at enterprise scale JavaScript development.

Is there a cross-platform framework for C?

I am curious to know if there is any kind of programming library/framework for the C language for cross-platform programming of course. I mean there are already frameworks like Wxwidgets, Boost, Qt, U++ and etc for C++ available but I have not yet found any for C .
Updated Info:
We are trying to build an underlying Framework/library to be used in our project. We are going to eliminate the dotnet and instead provide a counterpart for those libraries which is fast and less demanding.
We will be working on a server/client based project, and thus the underlying services must be fast and also portable. GUI is not our priority now, but libraries providing threading capabilities is of importance to us.
And for the ANSI part, I think we are fine with that at the moment unless something changes that in the future.
if you write plain ANSI C, it should work on every POSIX system.
The most successful example of cross platform C library is standard C library itself (IMHO).
If you're looking for GUI toolkit GTK is the answer,
if you're looking for terminal UI, ncurses is pretty portable.
If you're looking for general use libraries, as long as they're written in ANSI C, should work almost everywhere, as long as it doesn't use system level APIs.
Can you just tell us, what kind of library/framework you are looking for ?
GTK+ is long established and actively maintained cross-platform C-only (or primarily) toolkit. You'll find not only on-line documentation but also books written about it. It is the framework backing up the GNOME project.
GTK+ is meant to build applications with UI, first of all. However, even if you don't need UI you'll find that some GTK+ components, namely GLib, provide general multiplatform support comparable with Qt. Actually, I needed a framework without UI at first and chose GLib over APR because I was able to find documentation and tutorials easier.
GTK+ was initially developed on UN*X an X-Windows which remains the platform where you can get it running the most easily. I wouldn't say that it is more difficult on Windows; it is just that you have more compiling environment options. I started with prepared GTK+ packages and MinGW but ended up integrating GTK+ with MSVC.
GTK+ exists for a long time and some people may find it old-school. On the other hand, it shows that it has proven to be stable and useful. There are also bindings for C++ and C#.
As with every big framework, the more you need from it the longer you will have to learn. But the other way round it works too; the more you learn the more you'll be able to do with it. Consistent coding style helps getting used to it.
--- Ferda

Which are the databases used in gtk?

We can use databases sqlite,mysql etc with python and qt.But i dont know which database is used in gtk and how to use it.can anybody help me to find the database for gtk and also give some example for HOW TO USE IT (i am beginner).
GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, but it is not a programming language itself. It is written in C but has been designed from the ground up to support a wide range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development, therefor you can use any of the technologies you wrote.
As ergosys said, GTK favors no database API. You can use what you want.

Java Web Framework Prototyping tools

At the moment Iam evaluating java web frameworks. More precisely Iam talking about GWT, JSF2 and apache wicket. One very importent criteria in this evaluation is prototyping.
The prototyping process in my company can be described by the folloing:
The customer can produce GUIs with an easy to use WYSIWYG editor, by drag&drop-ing web components on the corporate predefined website structur. There is also a need for some litte dynamic being like navigation from one frame to another.
So Iam looking for tools. These tools should not only provide nice GUIs but also deliver
some basic code, which can be forwarded to the development. The aim is to avoid missunderstandings between designers and developers as much as possible. More or less the
developers just have to implements the code, but not to implement the optical requirements.
In addition it would be desirable to customize the components thats been used in the WYSIWYG editor. Does anyone know any good tools for the mentioned frameworks (GWT, JSF2, wicket)?
One of the challenges with WYSIWYG tools for UI is that you generally have to pick between rapid prototyping and maintainable code. Even then, as soon as you want to do something that's not supported by the prototyping tool, you can implement it as you would without the prototyping tool, but your round-trip functionality (namely turning your app back into something that can be edited) is broken or crippled unless extra work is done to generate the metadata that the editor needs.
Upgrading between major releases is another issue. Vendors and groups who have developed these tools have a historically spotty record of when they stop supporting older versions, reasonably because of limited resources and sometimes difficult problems with how to track solid innovation happening in the framework itself.
My suggestion instead is to prototype with an RIA prototyping tool like Balsamiq Mockups or use a grid system like 960 Grid to generate rapid prototypes, then use a web development framework that allows your developers to run the code with or without the backend server. Wicket has a tag called that is great for this kind of thing -- web devs can fill a div with stuff that a component should generate, and Wicket devs can wrap the contents of that tag with after they implement it. Both parties can coexist for a long time that way.
Try GWT Designer for GWT.
Introduction
Quick Start Guide
Download
There's nothing like this for Wicket that I know of. The closest you would get to any kind of resource reuse from your customer would be to give them a drag and drop HTML editor - the resulting HTML could then form the basis of Wicket page/panel layout.
if you are planing to use a javascript library, you may use extjs,
http://www.sencha.com/products/js/
they have developed a nice designer
www.sencha.com/products/designer/
there is also a port of ext in GWT
www.sencha.com/products/gwt/
You have to pay for a commercial license if your application isn't open source!