Choice of embeddable browser - linux

I'm starting to desing ะก++ Linux program with Qt-based GUI. Now I'm looking for all possible embeddable browsers which I will be able to use in my project. I know about Chromium-based solutions - Berkelium, CEF and Awesomium. Anything else?
Also it will be nice to hear some comments about practical use of such systems.

What about using QtWebKit that's already in your Qt-based system? TideSDK may be of interest. It probably has a way to use a C++ backend, as the toolkit already works with Ruby, Python, and PHP. However, I think they are primarily a packaged version of CEF for dynamic languages.

Related

Is there a cross platform desktop framework that would utilize native libraries such at .NET and Cocoa?

I am starting a project that is heavily graphics related (think, paint app with layers).
Anyway, I have a long history in C#, Java, JavaScript and Ruby. This application will be open source.
But what I'm looking for is a "build once, use everywhere" framework. Most of the platforms I've looked into either seem to be far too outdated, too complicated, or just not a right fit.
I've looked into Swing, WindowBuilder, wxRuby, etc. So many choices and none seem modern enough, have good documentation, etc.
I was a C# desktop developer for years so if I were targeting Windows only, I would go that route easily. But I want my app to run on Macs too. But, I would like the Mac version to look like it was designed for a Mac and the Windows version designed for Windows, etc. I'm looking at the Mono Project currently. But the idea of my Mac users installing Mono doesn't appeal to me.
Anything Ruby based would be cool but not required.
Anyway, what are some recommendations? I use NetBeans, Eclipse and Visual Studio. So I'm not concerned with learning new IDE's if I had to. I even thought about doing it all in JavaScript and using the canvas but since I need to work with large, local binary files, I didn't know if that would be a good option.
Thanks for any suggestions.
Real Studio can create cross-platform desktop apps for OS X, Windows and Linux. It can also create Cocoa apps and you can use it to interface with Cocoa directly when needed.
However, Real Studio creates Win32 apps, not .NET apps so you cannot directly interface with .NET libraries.

How can I use dockpanel in Linux/Mono with all its features?

I would like to use dockpanel suite in Linux or Mono platform. I heard that there is some methods to modify the source code of dockpanel so that it can be used in Linux platform with all its features like drag and drop and all.Can anyone guide me to achieve that?
Due to its close bindings to Win32 API/PInvoke, currently it is impossible to use full features on Mono. You probably misinterpreted others' words.
Edited: DockPanel Suite 2.6 and above contains Mono support that I developed, http://dockpanelsuite.com
Yes and No.. You can write a silverlight 4.0 program and run it in a browser window on linux you can use silverlight controls.
If you are feeling really brave you can use MoonLight (silverlight by mono) to write full desktop apps on linux. One helpful set of tools (shameless plug) for doing this is MoonBase
But.. Generally, No, if you mean the WPF DockPanel control, you can't use that on top of Mono.
I know you've used WPF tag, but what you heard indicates rather winforms. In such case you may be interested in this. If you really had WPF in mind, look at the IanNorton's answer.

What language choice is good for a c# developer wishing to develop on the Linux platform?

Are there any good OOP languages that you can use on Linux? Obviously Java comes to mind, even running C# under mono.
Looking for a language that can be used for all round development, web dev, desktop, services etc.
Besides Mono C# and Java anything else come to mind?
Python seems to be the obvious choice. There a lot of great web frameworks for it, strong support for development of GTK desktop apps and many others. Ruby should also be mentioned, although it's not usually used for desktop apps.
Don't forget other languages running on top of the JVM either - most notably Scala, Clojure and Groovy.
Vala and D are new and interesting languages with some quality tools available. Vala was primarily designed to work smoothly in GNOME environment.
All of them. Whatever you want to use on Linux, you can.
Linux developent is a lot of things. For GUI application programming, you're most likely to want to program for one of the two big desktop environments, GNOME and KDE, or directly to the widget libraries that they are built on, GTK+ and Qt.
GTK+ is at its root a C library with object orientation being implemented as a set of conventions, very simply explained. However, many now program GTK+ and GNOME using true OOP languages like C++, C# using Mono (some very popular and default GNOME applications are built on Mono).
Another very interesting language for GTK+/GNOME is Vala, which is made to look and behave like C#, but which compiles to idiomatic GTK-using C, so all the GTK+ OOP conventions are lifted up to be part of the Vala language.
KDE and Qt are basically C++ libraries, but these also have bindings to other languages.
Both environments have good Python bindings.
You can still use C# with the Mono project.
Python and Ruby are probably the most logical choice for all-round development. PHP is also great for web development.
Interesting how as soon as Java gets ruled out as an answer that we go straight for dynamic languages.
I'd still suggest using Java as a lot of your C# knowledge will apply with subtle differences in convention.
For the compiled type of app how about Freepascal.
Multi-platform and pretty easy to get the hang of for a C#/Java developer I would have thought. Can do web, desktop, client-server etc etc. And free (as the name implies!). Plus, it's based on Pascal (obviously) so it's well tried and tested and not one of the 'languages du jour' :-)
Give a try to the Free Pascal and Lazarus IDE.
You are getting support for multiple platforms, not only Linux. You write code once and compile it everywhere and you have a quite nice IDE which will speed up your development process.
Take a look at screenshots
TIP: When using Lazarus try the last daily snapshot instead of stable release. Snapshots are much more up to date with bugfixes \ features.
Consider C++ with Boost.org. Boost is always coming out with new releases and it's all open source. Linux and C++ have a very long history and there are plenty of stable tools. Once you know C++, many new worlds seem to open up. There are several good IDE's as well. I like code::blocks.

In what programming language is GoogleTalk application developed?

Does any one know in which programming language were Google Talk application developed.
yes am asking about the windows client application. :)
http://www.google.ro/talk/
googletalk.exe -> Compiled with: Microsoft Visual C++ 7.0 [Debug]
gtalkwmp1.dll -> Complied with: Microsoft Visual C++ 7.1 DLL
So GTalk is written in C++
You'll find http://www.peid.info/ pretty useful for this kind of stuff.
According to Steve Yegge, Google is using C++, Java, Python, and JavaScript. So the answer would be C++ :)
Google released an open source library for Google Talk called libjingle, which is written in C++. So logically, the Windows client would probably be C++ too.
Do you mean the client side, or the server side ? The talk protocol is Jingle and libraries are available in C/C++/Java.
Ideally the protocol would be language independent, and consequently both sides (client and server) would not be constrained to a particular language.
According to this Google-talk Wiki, it uses libjingle which they've implemented in C++. However, a company as big as Google is big enough to develop their own in-house compilers with support for whatever dialect they prefer. This would be a sensible thing to do for Google, to have something which could be compiled for every operating system that they want to support.
I don't have Google-talk but I checked the binaties of Picasa, another Google application. It mentions the Visual C++ Runtime Library so I guess I'm wrong and Google is probably just using Visual Studio instead.
In general, C++ is a platform-independant language, making it the most appropriate language to use to write new projects. However, depending on the desired functionality, you do need the proper libraries for all the platforms you want to support and make sure they all expose the same methods.
Java generates platform-independant binaries. As such, it's more powerful than C++ but those binaries depend on the Java Virtual Machine, which reduces their performance. This makes them less qualified.
There are plenty of other languages that could have been used but Google is most likely using a language that supports as many platforms as possible. (Including the future Google Chrome Operating System.)

MFC like easy to use tool for Linux

When I used to write test tools in Windows, I use MFC for creating the front-end GUI. This made development of GUI development very fast, and I always used to concentrate on the back-end. Recently I moved to the console based Linux-world. Where most of the things are just console based.
My question: Is there any easy to use equivalent of MFC in Linux?
If you are used to MFC, you will LOVE QT.
http://www.qtsoftware.com/products/
There are a lot of alternatives.
I like wxWidgets. Others will recommend Qt.
Another option is to use Glade to build GTK+ or GNOME applications.
I've never used MFC, but supposedly the wxWidgets toolkit is somewhat MFC-like. Though I prefer Qt over wxWidgets as IMHO the API is nicer, more complete and better documented, and the Qt GUI builder is pretty good.
A nice thing with both Qt and wxWidgets BTW is that they are both cross-platform toolkits; they work on Linux/Unix, Windows, OS X, and maybe other platforms as well.
There's a a huge omission here! gtkmm, the official C++ binding to GTK+, is arguably the modern C++ GUI kit, since it goes out of its way to really use and evolve with the language. For those learning modern C++, it's the best counterpart to the stdlib. It grabbed and kept my interest, where no other GUI lib could, due to its modern and clear API. And it'll work wherever GTK+ does - a tonne of places. I'm glad to have built my first ever (and not trivial!) GUI project around it. It also provides sigc++, which I imagine is really powerful for custom signalling/event systems. Disclaimer: I'm just a self-taught user.

Resources