IDE's and GUI's for Python and Golang

  • Release Candidate 6
    Guest:
    We are at a “proposed final” true release candidate with nothing known remaining to be changed or fixed. For the full story, please see this page in the "Pre-Release Announcements & Feedback" forum.
    /Steve.
  • Be sure to checkout “Tips & Tricks”
    Dear Guest Visitor → Once you register and log-in:

    This forum does not automatically send notices of new content. So if, for example, you would like to be notified by mail when Steve posts an update to his blog (or of any other specific activity anywhere else), you need to tell the system what to “Watch” for you. Please checkout the “Tips & Tricks” page for details about that... and other tips!

    /Steve.

rfrazier

Well-known member
Sep 30, 2020
569
194
Hi all, the following paragraph is one I had put in another thread about deals from NoStarch Press. I decided to separate it out into a thread of its own. I also have some information to share on this topic. I am considering jumping into learning both hacking and programming, which go hand in hand, and starting with Python and Golang (Go). Maybe I'll get on HackerOne, etc. (Have you ever tried doing a search for the word GO? It's a disaster). I've purchased a number of Python books and some Golang books, many of which are from NoStarch Press. I am considering IDE's and GUI's. I also know, if you ask 100 programmers "What's the best IDE or GUI?", you'll get 200 answers. :cool:

A beef I have with MOST popular languages right now, including Golang and Python, is the lack of substantial GUI support. HELLO, we're 20% into the 21st century. We've had GUI interfaces for quite a while now. If I wanted to write a full blown GUI PC app, I might have to resort to Free Pascal and Lazarus or something (I've got books on that too), or even VISUAL BASIC. I don't get why these languages don't have GUI support.

This is a work in progress, but I found this YouTube video I wanted to share which talks about QT Designer and QT Creator and using them with Python. I wonder if that can also be used with Golang. These procedures are for Linux but could probably be adapted to Windows.

The Best IDE for Python GUI Programming. Installing Qt Creator and PyQt

PS, I don't like Eclipse because I don't wish to run Java on my system. But, I do like the idea of a hopefully full featured and relatively easy to use IDE with the option to do debugging. I'm also not inclined to use Vim or Emacs because of the learning curve. No offense to anyone who uses those.

May your bits be stable and your interfaces be fast. :cool: Ron
 
Last edited:
There is no reason to not run Java APPLICATIONS on your PC if you want the code, most especially Eclipse as it is fully self contained these days. (It arrives as an EXE that launches the Java code, but will retrieve an execution environment if needed because they also control the open source JDK these days too.) I assume if you have a problem with Java being on your system then you would have a problem with Python being on your system because they're identical in function. Both are invoked to run code on your system. The difference is that Python is not normally compiled into byte code and Java normally is. There is a a Java REPL though too. Also C# is also a clone of Java, so you should also have a problem with almost anything MS does these days, as a lot of their current projects are either JavaScript (in the form of TypeScript, such as their Visual Studio Code editor) or C# running the CLR (The Microsoft Powertoys as an example.) Java's JVM == C#'s CLR .

Python has many IDEs I think. There is https://thonny.org/, Microsoft's https://code.visualstudio.com/ or the paid https://www.jetbrains.com/pycharm/ . Jetbrains also has an IDE for Go I think.
 
@PHolder I'm not afraid to admit that much of what you said is above my level of experience. I was a programmer for Delta Air Lines 30 years ago in the Clipper database language, which is somewhat like C. But, I've been out of the game since then and am not familiar with the modern technology. So, it's possible that I'm under some misconceptions. All I can say is that, years ago @Steve was talking about all the continuous critical errors that Oracle was letting slip into Java, or introducing into Java, and all the viruses that Java was introducing into web browsers, or being invoked from hostile email attachments, etc. And, I don't like Oracle. So, I banished Java from my machines never to be seen again. Also, as a result, anything that tried to load Java, like Eclipse, was also banished. I know you can theoretically isolate Java from the browser(s), but I didn't want to take the risk. For similar reasons, I would prefer that Powershell wasn't there either. Anyway, that's where I'm at.

I've added the IDE's you mentioned to my list of things to check out.

May your bits be stable and your interfaces be fast. :cool: Ron
 
Regarding GUI's, Free Pascal / Lazarus has really good GUI support. I wonder if you could link a Pascal GUI to a Golang program. Then I'd have to learn three languages, which sounds like a stretch. I'd rather invoke the GUI from Golang with an IDE that supported such things. I understand that QT Designer and QT Creator can do that for Python but don't know about Golang.

May your bits be stable and your interfaces be fast. :cool: Ron
 
theoretically isolate Java from the browser(s),
Java hasn't been tied to the browser in almost a decade? Applets aren't a thing any more. That was your security risk... In no language is it safe to assume you can download and run random code from a stranger. Java is now only an execution environment for Java code you choose to install locally. As I said before, it's no more risk to you than Python would be.
 
A long time ago Borland was a great company and they made Turbo Pascal. (I used it in high school.) Some divesting and reacquiring later Delphi is still around from a company called Embarcedaro (owned by a parent company Idera which itself is owned by financial types...) In any case, every so often I check to see where Delphi is these days, and while doing that tonight, I noticed they have some free tools. One of them is supposedly for Python. As I have never used it, I am obviously not in the position to recommend it, but you may wish to check it out yourself.


EDIT: Jeepers, that snippet from the site really causes me to regret the recommendation... "Text Mack Up PyScnpter"???? Anyway... the price is right if it's not garbagey like that bad text might imply.
 
@PHolder I've slowly been doing some more research into the topic of this thread. It just so happens that I've also done research into Free Pascal / Lazarus which shares some of the same lineage you mentioned.


They actually have a really nice IDE and GUI capability. Not that I remember it, but I did learn Pascal in college (pains me to say this) 36 years ago. But, since I'm considering learning Golang and Python for hacking, throwing Pascal into the mix sounds like too high a bar.

The PyScripter program sounds cool. I would think anything on the Embarcadero site would be OK. Hopefully that munged up text is a typo or just a random disk error and not malicious.

I don't like the way Embarcadero does business with their commercial products, which they're very proud of. I had to really search for pricing for Delphi, $ 1600 year one then $ 400 / year renewal. OUCH! I know they have a community edition, but, when they hook you, they HOOK you. Commercial pricing kicks in if you get above $ 5K / year in revenue.


I've been hoping to find something that would work for Python and Golang and possibly others. There seems to be a few GUI's for Python, but I haven't found a full blown visual development IDE like what Lazarus is for Free Pascal. And, I can't find hardly any GUI stuff for Golang at all. I'm very disappointed in that. Getting a GUI going when learning to program is one of the FIRST things you should do, if you can. That makes the development MUCH more interesting. Printing "Hello World" on a text screen doesn't cut it any more. When I read most programming books these days, I want to throw them through the wall. Chapters on flow control make particularly good SLEEP AIDS.

Even though I'm long since past childhood, I think it might actually be FUN and INTERESTING to go through the following Python book (which I own) where you build a space station simulator, and it uses a GUI, although a very limited one.


So, I guess my main candidates for GUI's for Python are TKinter and QT if I'm remembering correctly.

My GUI candidates for GO are ... hmmm ... I got nothing. Maybe I'm just not remembering.

I wonder if I could call Pascal modules from a GO program.

In terms of IDE's / Text Editors, the PyScripter you mentioned is interesting. In terms of ones that could probably do both Python and Golang, some of my contenders are: Atom, Sublime, Geany, Zeus (not updated recently), and Visual Studio Code. I'm excluding Vim and Emacs due to complexity. VSC may be overkill. Also, I'm not clear on what the difference between VSC and Visual Studio is. The consensus among some on YouTube seems to go with a text editor, not an IDE. That may be good advice for me since my computers are 10 years old and not super powerful. But, I would like to be able to use a debugger in either Python or Golang. Being able to run the IDE or Text Editor in both Windows and Linux (like Raspberry Pi) would be a plus.

Once I get the basic setup out of the way, I hope to be going through:



Thanks for the additional info.

May your bits be stable and your interfaces be fast. :cool: Ron
 
I don't like the way Embarcadero does business with their commercial products
Yes, they really do think their tools are worth a lot. There is a different company that makes language tools that is similar, I assume they compete. Of interest to you is they support Go. But again, the price is annual and too large for little guys like you or I.


I have used Lazarus, it is very reminiscent of Delphi, and very free. If you want a serious programming experience, I would encourage you to use a typed language like Object Pascal rather than an untyped one like Python. Python is great for short one-off scripts, but declaring your types allows the compiler to enforce them, preventing a whole series possible bugs and frustrations. (I assume Go is typed, but I've never used it to be honest. I started to learn it, found I didn't like the mandated bracketing convention and moved on.)
 
@PHolder That's interesting about elements. But, my (lack of) a budget requires me to focus on cheap or free stuff. Thanks for the link though.

I've been studying what Golang is for a while and rooting for it to get going. Looks like it finally is after 12 years, except for the lack of GUI support as I've mentioned.

I think the following is accurate. Golang is, compiled, statically typed, strongly typed, has garbage collection, and has concurrency features. As I understand it, Golang is also BLAZING fast, compared to scripting languages.

I agree with your advice and I like platforms of this type. This is reminiscent of the Pascal that I learned decades ago as well as Clipper that I learned fewer decades ago. I've been out of programming for a long time, and actually have never used any of the modern object oriented or scripting languages.

Here's a three year old video that I found after Youtubing golang features.

Go vs Python Comparison | Which Language You Should Learn In 2018? | Edureka

Python seems to have taken over lots of the mind share. For example, Python and Scratch are the only languages that merit their own category on the https://nostarch.com (Nostarch Press) website. Also, a lot of the hacking tools seem to be written in Python. So, I might have to learn both. But, I'll probably be starting with Golang.

May your bits be stable and your interfaces be fast. :cool: Ron
 
In general, search for "your fav language" and REPL. A REPL is an [online] interpreter for the language. Usually, if installed locally, you can invoke the REPL to interactively try things. Java even has one, but it's not online that I know of.

Also, while you're learning simple languages with immense power, never forget about Lua and making games in LOVE 2D.
 
  • Like
Reactions: rfrazier
There are online playgrounds for anyone wanting to try out these languages:
@Happenstrance Thanks for the cool links.
In general, search for "your fav language" and REPL. A REPL is an [online] interpreter for the language.
@PHolder I've never heard of those. Thanks very much for the tip. It would be fun to do a few speed tests comparing the online Golang interpreter versus a local compiler, for example.

I THINK I've heard about ways to do the reverse, to compile certain scripting language programs, but I can't remember where or what. Maybe it was Ruby. Don't know.

May your bits be stable and your interfaces be fast. :cool: Ron
 
  • Like
Reactions: Happenstrance
Last edited:
I THINK I've heard about ways to do the reverse, to compile certain scripting language programs, but I can't remember where or what. Maybe it was Ruby. Don't know.

There's compilers to convert programs to a type of JavaScript call Web Assembly.

I'm not sure, but when it was new, you just needed a browser to Web Assembly because it just compiled code to a subset of JavaScript (and browsers can optimize for that subset to get REALLY fast), but I think there was enough changes that now you need a browser with support for it now, as I think it's basically some form of byte-code at this point.

Emscripten was the first compiler I knew of to make Web Assembly files (the format was called asm.js files at the time)

I also know that there's a few different ways to compile Node.js programs into executable files. I sure most of the popular scripting languages have something like it at this point.
 
A long time ago Borland was a great company and they made Turbo Pascal. (I used it in high school.) Some divesting and reacquiring later Delphi is still around from a company called Embarcedaro

I love Pascal and also used Turbo Pascal in high school. I started with Delphi back with version 1.0. The most recent version I own is XE6. As @rfrazier pointed out it's crazy expensive nowadays.

I have been doing more and more C# coding using Visual Studio. I don't work with Delphi as much any more. Sad to see it descending further and further into obscurity...
 
Hi all. I wanted to give you an update on my progress. I want to acknowledge, or re acknowledge, that "What is the best or your favorite programmer's editor?" is such a personal question that, if you ask 100 programmers, you'll get 200 answers. It all depends on each person's preferences and workflow and needs. Still, I appreciate any and all ideas. I also will freely admit that this is all very intimidating. I have programmed professionally before ... in 1995 ... in Clipper. But, I'm not 30 years old any more and a lot has changed. Hopefully, I can make some useful headway. Better yet, profitable headway.

I'll recap my journey as far as this thread is concerned. Maybe some of these resources will be helpful to you all.

So, I want to get into hacking and bug hunting for bounties. I like the idea of income from my desk. I give @Steve for my interest in this topic, although I've been "threatening" to learn programming again for many years. The current ... EM ... political and medical situation motivates me to work from home.

I've got these books from No Starch Press and Amazon. One great thing about No Starch Press is that you also get EBooks with the printed copy if you want to. But, for this type of thing, I like a printed book so I can read it anywhere, dog ear the pages, and highlight things. It turns out paper is a pretty good display device. I will pay a few extra bucks to get the EBook as well.

Bug Bounty Bootcamp

Ethical Hacking

Practical IOT Hacking

Black Hat GO

Black Hat Python

So, before learning hacking, I'm going to use SOME of the following to learn the basics of Golang (Go) and Python. I've also signed up for newsletters and forums for Golang and Python.

For Golang:

GO Programming in easy steps: Learn coding with Google's Go language
(Pretty cool full color step by step guide.)

The Art of Go - Basics: Introduction to Programming in Go (Learn Real Programming)

For Python:

Mission Python
(Build a space station simulator.)

Python in easy steps: Covers Python 3.7 2nd Edition
(Pretty cool full color step by step guide.)

Learn to Code by Solving Problems

Python for Absolute Beginners: A Practical Introduction to Modern Python with Simple Hands-on Projects (Learn Real Programming)

Now I'm REALLY intimidated. I should be productive in ... OH ... 27 THOUSAND YEARS.

Documenting this was harder than I expected. But wait, there's more!

I've pretty much given up on getting a GUI for Golang. There are SOME basic libraries but (AFAIK) nothing really substantial. For Python, it looks like TKinter and QT are the go to packages. I WISH these languages had a full blown GUI IDE like Lazarus / Free Pascal.

For my text editor / IDE, here's my thought process, tweaked for my needs. I DEFINITELY want it to support both Golang and Python as well as preferably others. So, I'm not looking for language specific products.

I'm trying to avoid Microsoft for various reasons, not the least of which is that they keep breaking their products. So, I'm excluding VSCode. To each his own, so don't flame me.

I was looking at Geanie, but it doesn't look as modern or well supported as some. I'm not sure about Golang support. So, I'm excluding it.

I was hoping for Linux support, but some Windows apps can run under Wine in Linux, which might be good enough.

I'm zoning in on Zeus (Windows only), which few people know about, but I ran across it years ago. It's been around for probably 18 years. The oldest forum post was 2004. But, it was updated last year. They specifically talk about and have tutorials for Golang. They say you can set up the editor for almost any language. It's a paid product ($ 90) with a 55 day trial. They also have a Lite version for free, but I'm not sure what all it supports. There is a LOT of information on the website and the forum is somewhat active. I found a few YouTube videos on Zeus but not much recent.

If I don't like Zeus enough to pay for it, I could potentially revert to the Lite version. If that doesn't work, I could look at Atom (which is purported to be somewhat slow), or Sublime Text (which nags you to buy it for, I think, $ 100). The Sublime Text business licensing is subscription only, which I don't like. The personal version is buy it and own it with 3 years of upgrades. Apparently, though, you can ignore the nags and keep using Sublime Text.

Here are a bunch of Zeus links for anyone that's interested.

Zeus Home Page

Zeus Tutorials including Golang and Python

Zeus Languages - Can be configured for almost any language but comes preconfigured for 26 of them, including Golang and Python.

Zeus Page for Golang

Zeus Page for Python

Zeus Forum

Zeus Lite (free)
Some of the text on this page is a bit dated but the download was updated in 2021.

Zeus Edit Review (2013)

So, there you have it. My programming stack of stuff.

What have I gotten myself into?!?! :eek:

Anyway, hope this is helpful to you all. Feel free to jump in with other tips if you like as this project is definitely a work in progress and is likely to be for quite a while.

May your bits be stable and your interfaces be fast. :cool: Ron
 
Last edited: