Thread: About c++,Qt,Qml,Qwidgets,broken morale

  1. #1
    Registered User
    Join Date
    Feb 2012
    Posts
    29

    About c++,Qt,Qml,Qwidgets,broken morale

    (I am not sure if this is the right forum section to post,but my question is towards passionate C/C++ programmers,so I decided to send my post under this section.)


    Yesterday,I have read that Qt 5 gives programmers two options for GUI design,QtQuick and traditional Qtwidgets.
    Unfortunately,to use QtQuick,you have to learn a Javascript like language called "QML".I've read that QtQuick has some additional features (some animation elements I think) which is not available with current QtWidgets,and that nobody is currently working on QtWidgets to improve it.So there is no Qtwidgets/c++ equiavalent of some QtQuick features.

    Reading those,really broke my morale.My roadmap was after learning C,I would learn C++ and then I would learn Qt and combine them.But now,I heard about Qml.I've read that a Nokia/Digia officer said QT 5 still has QWidgets and that QtQuick is not superior to it.But unfortunately he also said that QtQuick is the better way to go.I fear that they they may avoid QtWidgets in the future and they may even develop QML more and may
    discard C++ and other languages from Qt totally,who knows.

    After doing some research on internet,I started thinking about other GUIs and programming frameworks.I like C++ Builder but
    unfortunately,when I google it,or search in the forums(other than embarcadero's) for "c++ builder",the results make me think that C++ Builder is not popular,and also there is no new English book of it after it's acquisition and resurrection by Embercadero.All the English books I have seen about it are old books belong to Borland times.

    What do you passionate C/C++ programmers do?Do you continue using Qt?What do you think about Qt's future,will they abandon traditional QWidgets in next versions or maybe even abandon c++ and other languages totaly and enforce QML totally?If you left using Qt,or have not been using Qt,what are you using for c++ GUI and API,do you recommend it?

    I even started thinking to leave programming totaly or maybe starting Java,but when I faced with difficulties while learning programming,my c/c++ passion always kept me going,but I don't have this passion for Java or any other programming language.

  2. #2
    Registered User
    Join Date
    Nov 2012
    Posts
    1,393
    Quote Originally Posted by Awareness View Post
    Yesterday,I have read that Qt 5 gives programmers two options for GUI design,QtQuick and traditional Qtwidgets.
    Unfortunately,to use QtQuick,you have to learn a Javascript like language called "QML".
    Why is that "unfortunate"? I haven't played much with QML, but from the looks of it it is quite easy to follow - Qt 4.7: Introduction to the QML Language

    As for your fears, there is an established C++ API for Qt, and I really can't see future versions of Qt abandoning it. When it comes to newer features, it's up to the development team if they want to offer those using the older API or whether you will be required to use a new API, whether it's QML or whatnot. Is that really a big deal?

  3. #3
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by c99tutorial View Post
    I haven't played much with QML, but from the looks of it it is quite easy to follow
    I have, and it is. it gives the programmer the ability to separate the interface design/behavior from the program functionality. this is a good thing.

  4. #4
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by c99tutorial View Post
    Why is that "unfortunate"? I haven't played much with QML, but from the looks of it it is quite easy to follow - Qt 4.7: Introduction to the QML Language
    Because it's an entirely new language, not compiled and not statically typed? (As far as I am aware, anyway.)
    AFAIK, it is possible to combine the two: QML and C++.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  5. #5
    Novice
    Join Date
    Jul 2009
    Posts
    568
    Stop being <language-x> programmer! <language-x> is a tool, you can have many of them -- what a concept!

    If your passion is <language-x> and you're not a compiler developer, then you're doing it wrong! Your passion should be solving problems, not <language-x>. Carpenter's passion is not a hammer or saw -- it's creating beautiful furniture!
    Disclaimer: This post shows my ignorance at the time of its making. I claim ownership of but not responsibility for all errors in it. Reference at your own peril.

  6. #6
    Registered User
    Join Date
    Feb 2012
    Posts
    29
    Seems like we can't agree,I am not a person who doesn't have favourites,I am not a very neutral person who sees things just as tools,and sorry I have a favourite programming language and I don't want to leave it aside and use another language...

  7. #7
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by Awareness View Post
    Seems like we can't agree,I am not a person who doesn't have favourites,I am not a very neutral person who sees things just as tools,and sorry I have a favourite programming language and I don't want to leave it aside and use another language...
    Everybody has that mentality after learning the first language really well.
    You'll get over this after learning and applying a few more languages and tools.

  8. #8
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Quote Originally Posted by Elysia View Post
    Because it's an entirely new language, not compiled and not statically typed? (As far as I am aware, anyway.)
    AFAIK, it is possible to combine the two: QML and C++.
    "Not compiled" and "not statically typed" pretty much mean the same thing. Though, if QML is weakly typed, it will work like JavaScript, that way.

    Newness doesn't matter if you're in Nokia's position because they could push QtQuick on you.

  9. #9
    Registered User C_ntua's Avatar
    Join Date
    Jun 2008
    Posts
    1,853
    Quote Originally Posted by msh View Post
    Stop being <language-x> programmer! <language-x> is a tool, you can have many of them -- what a concept!

    If your passion is <language-x> and you're not a compiler developer, then you're doing it wrong! Your passion should be solving problems, not <language-x>. Carpenter's passion is not a hammer or saw -- it's creating beautiful furniture!
    I think the usual case is not that you like a specific language it is just that you don't like learning a new language up to a level to be able to do what you could do with another language. You invest on learning a tool and you expect your investment not to go to waste. So precisely because the carpenter has a passion of making beautiful furniture he doesn't want to spend time learning this new weird looking hammer. Learning a new programming language (really learning it) is not a trivia thing.

    But I believe the message is valid nevertheless due to the fact that practically a software engineering job doesn't mean that all the time you will be writing code. You can be designing it. You can be debugging it. You can be documenting it. There are parts that will be the same regardless if the code is in Java or C++. If you don't like the rest of the parts, though, it will be hard to find a job that will guarantee that the main job will be coding. And when you find it you might have your manager walk in one day giving you the good news that you will now be the chief architect of the team where your job now will involve quite less actually coding to care if it is Java or C++...

    Nevertheless, I respect any passion, if coding in C/C++ is what you really want to do then choose a field that C/C++ is the "master" language and that coding is the main thing to do. If you think GUI design is one of that, you chose poorly. I mean the "design" part should be a bit of a hint. If your passion is GUI design and C/C++ they you are a way too limited to avoid serious risks regardless what you choose to do. You might just need to keep your passion as a hobby.

  10. #10
    Novice
    Join Date
    Jul 2009
    Posts
    568
    Quote Originally Posted by Awareness View Post
    Seems like we can't agree,I am not a person who doesn't have favourites,I am not a very neutral person who sees things just as tools,and sorry I have a favourite programming language and I don't want to leave it aside and use another language...
    You don't have to abandon one language to learn another, and neither do you need PhD in <language-x> to do something useful with it.
    Disclaimer: This post shows my ignorance at the time of its making. I claim ownership of but not responsibility for all errors in it. Reference at your own peril.

  11. #11
    Registered User
    Join Date
    Nov 2012
    Posts
    1,393
    I don't understand the problem. Suppose QtQuick is really great but you just don't want to use it for some reason... it doesn't appeal to you. OK, then just don't use it. It's not like the existing API calls in Qt are going to disappear. In the worst case they will be deprecated, but then you will always have the ability to use a "legacy" version of the library that still has the functions you need.

  12. #12
    Registered User
    Join Date
    Apr 2006
    Posts
    2,149
    A language is a tool, and for describing graphical interfaces, C++ is a bad tool. So you have QML.

    The reason QML is better than C++ is that GUI's are hierarchal, and have a tree structure. But C++ (at least C++89) does not have a pretty way to write tree structured code and have that structure passed to functions. In QML, the structure and context of an expression is important, so the tree structure of code can match the hierarchy of the GUI.

    You don't need to be a pro in QML, but you should use it, because it will result in better, easier to read and debug, code than any C++ you could write.
    It is too clear and so it is hard to see.
    A dunce once searched for fire with a lighted lantern.
    Had he known what fire was,
    He could have cooked his rice much sooner.

  13. #13
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    after learning C,I would learn C++
    Look at some examples of both, play around with a few tutorials, and then pick one of those two languages to stick with for at least six months.

    I fear that they they may avoid QtWidgets in the future and they may even develop QML more and may discard C++ and other languages from Qt totally,who knows.
    "QML" is barely more than a declarative interface into the "Qt" library. (Honestly I don't even know why it isn't just a declarative interface. The use of JavaScript for actions is muddy. They could have provided that, but it could have been a different layer.) Still, point is, if you are worth your salt as a developer, you would have eventually written code to separate the look from functionality.

    I even started thinking to leave programming totaly
    O_o

    Well, that's foolish at a profound level.

    If you are really that passionate, which you are obviously not, you'd have taken up the flag to maintain "Qt" for your own purposes. "Qt" is open source; they legally could not stop you so long as you abide by the terms of the license.

    If your passion is <language-x> and you're not a compiler developer, then you're doing it wrong! Your passion should be solving problems, not
    <language-x>. Carpenter's passion is not a hammer or saw -- it's creating beautiful furniture!
    This is true, or at least true-ish, but special familiarity with tools is a thing that exists and is perfectly natural.

    If you are willing to explore, you'll eventually find a language that mirrors some of your natural process, and that language will become part of your passion because it lets you pursue the solution of problems with less effort. You get from though, where you should spend most of your time anyway, to good code that much faster.

    Simply put, if you aren't attached to your tools, you need to find better tools.

    Being able to use multiple tools effectively isn't the same thing as not being passionate about a specific tool.

    Soma

  14. #14
    Novice
    Join Date
    Jul 2009
    Posts
    568
    Quote Originally Posted by phantomotap View Post
    This is true, or at least true-ish, but special familiarity with tools is a thing that exists and is perfectly natural.

    If you are willing to explore, you'll eventually find a language that mirrors some of your natural process, and that language will become part of your passion because it lets you pursue the solution of problems with less effort. You get from though, where you should spend most of your time anyway, to good code that much faster.

    Simply put, if you aren't attached to your tools, you need to find better tools.

    Being able to use multiple tools effectively isn't the same thing as not being passionate about a specific tool.

    Soma
    I agree. The relationship between developers and their tools: languages, compilers, frameworks, OS and so on, should be one-to-many. Having favorites is good and even desirable; going all exclusive one-to-one isn't.
    Disclaimer: This post shows my ignorance at the time of its making. I claim ownership of but not responsibility for all errors in it. Reference at your own peril.

  15. #15
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    s/from though,/from thought,/

    That reads... weird.

    Soma

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Is my C++ compiler broken?
    By @nthony in forum C++ Programming
    Replies: 57
    Last Post: 10-12-2008, 02:50 PM
  2. This CD Drive is broken?
    By alphaoide in forum Tech Board
    Replies: 3
    Last Post: 06-04-2005, 02:59 PM
  3. Rep Broken?
    By B0bDole in forum A Brief History of Cprogramming.com
    Replies: 27
    Last Post: 02-04-2005, 07:00 AM
  4. Broken While Loop
    By GamingMarvel in forum C++ Programming
    Replies: 6
    Last Post: 01-10-2005, 12:46 PM
  5. How is a C++ Program broken down?
    By Fool in forum C++ Programming
    Replies: 14
    Last Post: 09-29-2001, 09:27 PM