You are underrating Qt.
Qt is a very, very good library.
It is used for many, many things.
All of which will be as fast or faster than Java.
However, GTK has a more homely feel to it.
It's more elegant.
It's the difference of C vs C++
I want to avoid Java like the plague
Anything Java can do, C++ can do just fine
Only, people don't hate C++, and Java is loathed.
A word of warning.
On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:
"A web browser should only be built using C, C++ or Rust"
I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.
That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.
SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.
I don't know anything about QT widgets. I only know enough to
avoid QT.
By the way, here are some Linux GUI examples built with SWT:
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png
It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development Cross-Platform Native GUI Framework) - The Quickest Way From Zero To GUI - If You Liked Shoes, You'll Love Glimmer!)
That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.
I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:
glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub
Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(Tcl/Tk 8.5.
<Tcl/Tk 8.5).
Anyways, thanks for the info about Linux GUI.
I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.
On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
>
> One more thing
>
> A web browser should only be built using C, C++ or Rust
>
> That is what I was doing
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> > wrote:
>>
>> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web
browser
>> before in Ruby (but it totally sucked):
>> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>>
>> Still, there is an option to make it use the latest Chromium
and look
>> much better (using SWT):
>> JxBrowser | Java web browser for Swing, JavaFX, and SWT apps
>>
>> Thank me once you've utilized that option and built yourself an
>> awesome web browser, and share it with us once completed... I'm
>> interested!
>>
>> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
>> >
>> > echo "open /home/" > /tmp/emerald-browser-fifo
>> >
>> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
>> >>
>> >> main
>> >> [indentation]puts("Hello world")
>> >>
>> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
>> >>>
>> >>> Emerald-browser
>> >>>
>> >>> Goals
>> >>>
>> >>> Not bothersome (person shouldn't be bothered by anything)
>> >>> Full control
>> >>> To be fully written in C += 2
>> >>>
>> >>> * Uses the same engine as Chrome, with QWebEngine
>> >>>
>> >>> Ubuntu and fedora have packages
>> >>>
>> >>> emerald-browser [number of terminals, default 1]
>> >>>
>> >>> C += 2 compiler is called "g+". It's a wrapper for g++
>> >>>
>> >>> Usage
>> >>>
>> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>> >>>
>> >>> Example C += 2 program
>> >>>
>> >>> ---------------------------------------
>> >>>
>> >>> main
>> >>> puts("Hello world")
>> >>>
>> >>> --------------------------------------
>> >>>
>> >>> (No need for #includes)
>> >>>
>> >>> g+ is written in Ruby. It could be ported to Crystal
>> >>>
>> >>> TODO
>> >>>
>> >>> 1. Make g+ work better
>> >>>
>> >>> It doesn't support classes, structs or namespaces currently
>> >>>
>> >>> You can always #include C++ or C files though
>> >>>
>> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN
C++. IT CAN DO ANYTHING C++ CAN DO AND MORE.
>> >>>
>> >>> Some things I want to implement
>> >>>
>> >>> These should be a single unary option buton, like what
GNOME 40 or Chrome has.
>> >>> In that, there should be many options. Maybe even things
like Update System
>> >>> There should be a close button for panes.
>> >>> The source code should be tidied up, but please don't
clutter it with too much OOP.
>> >>> Currently, everything gets googled. There could be a cache
of some kind.
>> >>> Everything you would want to do on your computer, should be
doable in this program. Currently, it makes a full-screen widget.
>> >>>
>> >>> If there could be a Compiz cube for tabs, that would be
really interesting.
>> >>>
>> >>> There was a program that converted Chrome tabs to a
filesystem extension. Maybe something like this could be added.
>> >>>
>> >>> Port to Mac.
>> >>>
>> >>> Port to Windows??? No Terminal then
>> >>>
>> >>> Port to FreeBSD
>> >>>
>> >>> Would need to work for certain in X and Wayland
>> >>>
>> >>> open should be improved
>> >>>
>> >>> To open tabs, do
>> >>>
>> >>> open [query1] [query2?]... (number of Google results per
query to show in panes)
>> >>>
>> >>> Example
>> >>>
>> >>> open 'ruby talk' 'ruby docs' 3
>> >>>
>> >>> That would open 3 google results for ruby talk, and 3
google results for ruby docs
>> >>>
>> >>> googler is used to search Google.
>> >>> Googler is used to search google. Googler is automatically
installed.
>> >>>
>> >>> Googler is written in python
>> >>>
>> >>> * This browser should be as fast or faster than Chrome.
>> >>>
>> >>> * Downloads don't currently work
>> >>> * Fullscreen doesn't currently work
>> >>> * Opening pages in new tabs doesn't currently work
>> >>> * You currently can't close tabs, only open them
>> >>> * The simplest way to close the browser currently is
killall emerald-browser
>> >>> * Add signal and slot to close program when window closes.
This doesn't currently happen.
>> >>>
>> >>> Back and forward buttons should be added, somewhere.
>> >>>
>> >>> Currently, you can right click, and do navigation
>> >>>
>> >>> A way to type in addresses manually should be added.
>> >>>
>> >>> Currently, you can do echo [full url] >
/tmp/emerald-browser-fifo
>> >>>
>> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>> >>>
>> >>> * Multiple instances needs to work
>> >>>
>> >>> * Want installation to be super simple. Download a binary
>> >>>
>> >>> * Let's get a fully functional browser, THEN care about
packaging
>> >>>
>> >>> If there could be a flip 3d for tabs, that would be cool
>> >>>
>> >>> Does anyone know bcat? It's a Ruby program 
>> >>>
>> >>> It's browser cat
>> >>>
>> >>> One uses it like this
>> >>>
>> >>> sudo yum upgrade | bcat
>> >>>
>> >>> One sees the output in their browser
>> >>>
>> >>> It's not my program
>> >>>
>> >>> There's an interesting cover flow widget for Qt. Maybe that
could be useful.
>> >>>
>> >>> Some pictures
>> >>>
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/qKNkHxR.png
>> >>> https://imgur.com/vBy9XnW.png
>> >>> https://imgur.com/0zv6oSc.png
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/WRVB9X1.png
>> >>>
>> >>> With Compiz
>> >>>
>> >>> https://imgur.com/sTzNUm9.png
>> >>> https://imgur.com/T9BeS0o.png
>> >>>
>> >>> Gregory Cohen
>> >
>> > Unsubscribe:
<mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
>> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>>
>> --
>> Andy Maleh
>>
>> LinkedIn: Andy Maleh - Lexop | LinkedIn
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Phone: 438-835-5602
>>
>> Unsubscribe:
<mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
>> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>
> Unsubscribe:
<mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
-- Andy Maleh
LinkedIn: Andy Maleh - Lexop | LinkedIn
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Unsubscribe:
<mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>