Tool: Stop to make GUI with Java .... Use Qt 5 !!
6
gravatar for sacha
24 months ago by
sacha820
France
sacha820 wrote:

Hi,

There are many free software for bioinformatics people, and  many of them use Java as the GUI programmation language. All of them have very good features , and we all probably use one of them. But Java make the GUI ugly, unresponsive, it is very slow, it depends of java and you have a non zero probably to crash it cause of the memory usage! I don't say anything about the language, but you probably understand why!

So, I suggest you all  to switch to the Qt5 framework !

Qt ( Cute )  is a C++ framework that works everywhere : Linux, Mac , windows and also  mobile, tablet or embeded devices . It uses LGPL license ( there is also a commercial license ) . 
If you are afraid of C++, don't worry! Qt has a very hight level language, and it's very easy to understand! It also provides a Really good IDE ( Qt creator)! And it's far away from the worst IDE of all the time ( Eclipse).  There is also a new declarative Language called "QML" which help you to design the graphics interface! You keep C++ for the logic! It's awesome, my grand mother would be able to design a nice interface ! :D

For exemple, you will be able to  :

  1. Communicate with REST API using QtNetwork! And even play with WebSocket
  2. Create a web client in few lines
  3. Use the power of OpenGL 3 easily, and from any OS! Shaders are so funs !
  4. Use  the Model & View class to display realy realy big dataset as list , table or tree !!
  5. Create nice and fast interface using C++ or the new awesome declarative language : QML
  6. On supported device : Bluetooth, GPS, Map, Accelerometer , camera etc...
  7. use QMatrix, QTransform, QQuaternion and enjoy mathematics !
  8. Draw using QPainter , or QGraphicsScene or openGL
  9. Play with Mysql, sqlite, Postgre and even more !

 

if you want to have taste , here are software made or has switch to Qt :

  1. Alamut visual : Commercial human genom browser ! Really Really nice !
  2. robomongo : if you want to play with mongodb
  3. VirtualBox : The virtualisation tool
  4. KDE : the graphic desktop environement
  5. ubuntu touch : the mobile phone
  6. vlc : the video player
  7. Speedcrunch : a lovely calculator
  8. Spotify : commercial music player 
  9. Wireshark : has switch rencently
  10. QCustomPlot [ LIBRARY ] : if you love charts !!
  11. pyQt : Qt with Python
  12. Qml-Material [ LIBRARY ]:  make an android application with the native look & feel
  13. ZodiakGraph[ LIBRARY ] : if you like play with graphs !
  14. ZeGrapher : graphics calculator
  15. BioQt [ LIBRARY ]: he starts the project
  16. Github : Every library which start with a Q !

Some video to watch :

  1. QtQuick .. amazing
  2. QtQuick + instant shaders programming : Completly awesome
  3. Qml material : google design rule

so, start now by downloading Qt  http://www.qt.io/  and try your first tutorial : http://doc.qt.io/qt-5/gettingstartedqt.html

have fun ! And say "good bye  java" !

 

 

 

 

 

qt tool java • 16k views
ADD COMMENTlink modified 23 months ago by lh330k • written 24 months ago by sacha820
5

I also like to troll back:

  • Qt/C++ is not lightweight, e.g., for what do I need Bluetooth support?
  • Why develop bioinformatics apps for mobile devices?
  • Qt depends on C++ which is slow compared to C
  • Qt apps are less responsive than GTK apps
  • Qt apps are ugly compared to GTK apps
  • ... I don't say more but you probably understand my point! :-p

I hope, I made my point in rejecting Qt for the same arguments that you use to reject Java... some of the arguments might be valid, for some you might find benchmarks falsifying my statement but if you try to falsify the above points, you didn't got my main message here ;-)

Having trolled like that, I like to also add a more adult answer: every GUI framework is bloated in some way and we (as programmers) should think more about the design than the language. In fact, you can write good GUIs in Java but often people in science crunch things together as they need it, e.g., because a reviewer requests a GUI. For this reason, a GUI is often one of the last things, most academics - from student to professor - think about. But, there are full professorships in Informatics that research on a good interfaces - let it be desktop or website. This shows that GUI development is not an easy task and consequently you should put more effort into proper design to get something good. And this does not one the actual framework that you use but on you as a good programmer...

ADD REPLYlink modified 24 months ago • written 24 months ago by Manuel Landesfeind1.1k
5

I shouldn't, but I can't resist:

Stop to make GUI with anything .... Use command-line !!

ADD REPLYlink written 23 months ago by h.mon9.2k
  • Qt/C++ is  lightweight than java !
  • Qt is first design for desktop and support mobile like android/java !
  • Qt depends on C++ which is faster than Java
  • Qt apps are more responsive than GTK, cause the backend works on openGL
  • Qt apps are nicer than GTK apps, because it fit all native OS

But I just wanted to share my love for Qt and share it with you ! No offense! Have a try, you will fall in love !

 

 

ADD REPLYlink written 23 months ago by sacha820
3

"But Java make the GUI ugly, unresponsive, it is very slow, it depends of java and you have a non zero probably to crash it cause of the memory usage! I don't say anything about the language, but you probably understand why!"

-> troll

ADD REPLYlink written 24 months ago by Pierre Lindenbaum100k

yes! A big Qtroll! C++ apps crashs too ! But it still faster than java all the time !

ADD REPLYlink modified 23 months ago • written 23 months ago by sacha820
2
gravatar for lh3
23 months ago by
lh330k
United States
lh330k wrote:

C++ is a big obstacle to some programmers. As much as I dislike Java, for common programmers, Java is easier to learn and less likely to blow your feet off. Yes, Java is a memory hog, but the GUI applications I see in our field do not require much RAM anyway. More importantly, Java is often "compile once, run anywhere". The same can't be said for C++ programs, especially when they have a 700MB dependency on Qt – don't underestimate the headaches on compilation and installation on those "managed" linux clusters. As I just tried Bandage, a Qt based assembly viewer, its Linux binary does not run on CentOS5/6. It is hard.

Qt is good and gaining ground, but Java is still a good option for GUI programming.

ADD COMMENTlink written 23 months ago by lh330k
1
gravatar for Antonio R. Franco
24 months ago by
Spain. Universidad de Córdoba
Antonio R. Franco3.4k wrote:
http://www.qt.io/ This is the right URL
ADD COMMENTlink written 24 months ago by Antonio R. Franco3.4k
1
gravatar for sacha
23 months ago by
sacha820
France
sacha820 wrote:

To Complete my arguments, let's have a look on a piece of code on the new QML script language :

import QtQuick 2.0

Rectangle {
    id: page
    width: 320; height: 480
    color: "lightgray"

    Text {
        id: helloText
        text: "Hello world!"
        y: 30
        anchors.horizontalCenter: page.horizontalCenter
        font.pointSize: 24; font.bold: true
    }
}

 

Here is the tutorial :

http://doc.qt.io/qt-5/qml-tutorial1.html

 

ADD COMMENTlink modified 23 months ago • written 23 months ago by sacha820
3

>new QML script language

stoppedreadingthere.jpg 

ADD REPLYlink written 23 months ago by karl.stamm3.2k

Hahahaahah xD

ADD REPLYlink written 23 months ago by John12k

Also, if you have an android device , check the demo and the editor where you can directly try to code QML from your couch !

Qt demo for android
Qt Quick Editor for android

And keep in mind, Qtquick is not only for mobile! You can create nice desktop GUI very quickly !

ADD REPLYlink written 23 months ago by sacha820
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1402 users visited in the last hour