What freeware IDE is available other than Visual Basic?
Is there any freeware QBASIC compatible IDE for BASIC?
"QB64 is a compiler (C++ emitter) with an editor (IDE) that strives for 100% Qbasic and QuickBasic 4.5 compatibility."
http://qb64.net/wiki/index.php?title=About_QB64
I'd recommend looking at FreeBasic and FbEdit. It is largely QuickBasic compatible and FbEdit provides a nice Windows based IDE. There is also QB64, but I'm not aware of any slick IDE's for that one.
Have a look at FreeBASIC. It's an open source compiler and available for Windows, Linux and DOS platforms. Its licenses are GPL and partly LGPL.
On the one hand its syntax is similar to QBasic. For an even better compatibility to legacy QBasic programs it offers a QB compatibility mode, which can be enabled using the command line switch -lang qb (see the compiler dialects page in the wiki) or a preprocessor directive. So you can see it as an unofficial successor of QB.
On the other hand it adds quite a lot of new features to the traditional BASIC world, like for example
OOP (including inheritance),
DirectX based 2D graphics,
support for OpenGL,
pointers,
network / internet programming with WinSock etc.,
bindings for many libraries including curl, BASS, MySQL's C-API, ...
There are a few IDEs available for FreeBASIC. So you're free to choose the one you like most:
FBIde
FBEdit
Firefly Visual Designer for FreeBASIC
Furthermore, Geany as a versatile editor has built-in support for FreeBASIC. Its syntax highlighting also works reasonable for QB source codes.
All the IDEs and editors mentioned in this posting are either free open source software or at least freeware.
There are a number of free Basic compilers out there, but the compatibility with QBasic may be limited:
http://www.thefreecountry.com/compilers/basic.shtml
See also:
http://en.wikipedia.org/wiki/QuickBASIC
Related
What programming languages or environments target Arduino or AVR besides the default C++ environment?
PS: I'm using Mac OS 10.5.
Some commonly known ones:
Ada
Basic, alt, alt
Forth, alt, alt
Java
Pascal
Python
C (mac) and C (Windows)
In theory you should be able to extend avr-gcc to support other languages, though this is no small undertaking. I should also caveat that support for languages other than C typically comes with some fairly weighty restrictions on language components -- for instance, even with C++ it's discouraged to be instantiating new objects as malloc and free are extremely expensive in both memory space and cycles.
Besides using Google, the following references are applicable:
http://www.piclist.com/techref/atmel/avr/languages.htm
An incredibly popular option is to program your Arduino directly in C, versus Wiring (the programming language used by the Arduino IDE). This allows a lot more control over the low-level operation of your microcontroller.
The Arduino IDE supports C (as Wiring is based on C and C++) and compiles with the AVR-GCC toolchain, or you can go without an environment and use a text editor, the command line (with AVR-GCC toolchain installed) and avrdude (a command-line tool available on MAC, Windows and Linux).
AVR devices can also be easily programmed with Atmel Studio (formerly AVR Studio), which can use a multitude of programming languages.
The Arduino forums have a lot of information for programming in C.
Information regarding the AVR-GCC toolchain can be found here.
http://www.nongnu.org/avr-libc/
I personally quite enjoyed taking the hard way around and learning how to program an AVR chip without the IDE, but this comes down to personal preference and how much you want to learn.
You can use Java. Check Arduino and Java. It contains some instructions that may be useful to you.
What are the differences between GNU C++ 4.3 and MSVC++ 10? I am talking about language features and standards compliance.
Here are two pages that might be of help:
Options controlling C++ dialect (GNU C++)
Standards compliance issues in Visual C++ (Microsoft C++)
Search for keyword "standard" in first link, this will show you which options break standards compliance. Second link is fairly self explanatory, but this is the 2003 version. It's possible that more standards (non)compliance has been built in later versions.
Language features are formed by compiler because they are implemented into compiler.
So when you're talking about differences in implementations - you're talking about differences in compilers. There are no differences in implementations without compilers.
I don't think the language features would be awfully different. I mean the language remains the same. The difference would be in the libraries that are available with each implementation. VC++ comes with loads to work on Windows platform and is the preferred choice for it.
I understand this question is very personal for everyone :), but still I'm forced to ask it.
Currently I'm using VIM and gVIM as my main editor, but imho it has a lot of downsides:
Very inconvenient scripting language.
Indentation and highlighting with regexps (real life shows that it's not the best idea).
Mixed file types issues (i.e. erb, html (+js +css), php +html, etc...).
Lack of auto-completion (i know there's a Acp and couple of other scripts, but i don't like the way they work with different programming languages and not take into account peculiarities of the programming language).
I've got more wining, but I don't think someone want to hear it :) This are the points making most problems for me.
So I'm looking for a new editor. Which should:
Have some common scripting language (i.e. Python, Perl, Ruby, etc...) and good extensibility.
Auto-completion.
Window splits (when you try it, you can't live w/o it :)).
Support of multiple languages and good support of mixed modes (definitely must have).
GUI support. With ability to create/instantiate widgets from extensions.
If editor has this features, it means it is what I want. I saw lots of options, tried Emacs, jEdit and dozens of others, but I didn't find anything satisfying this 5 points.
The only editor that was satisfying 4/5 points was gEdit, but I can't live w/o splits :(
If someone knows such editor please share.
Thank you :)
P.S. No holy wars plz.
I think Kate comes close:
Have some common scripting language (i.e. Python, Perl, Ruby, etc...) and good extensibility.
You can automate certain tasks in Javascript, although the API is somewhat limited... but the developers are working on it. (That's a fairly new feature)
Auto-completion.
Kate has it (almost too much - it sometimes autocompletes things I didn't want it to). I believe it autocompletes based partly on the words you've used in the current file.
Window splits (when you try it, you can't live w/o it :)).
Available on the View menu
Support of multiple languages and good support of mixed modes (definitely must have).
Syntax highlighting is available for many languages including mixed modes like CSS within HTML <style></style> or JS within <script></script>, and you can write your own syntax highlighting files to support additional languages or combinations
GUI support. With ability to create/instantiate widgets from extensions.
It's a GUI program, hopefully that's enough support for you... and Kate supports a plugin system where plugins are able to create their own menu items (or menus), sidebars, dialogs, etc.
Emacs
Use Pymacs.
Emacs has semantic.
Of course.
nxhtml mode supports the case of CSS and JS in HTML, along with other preprocessors (PHP, etc). This is a weak point of most text editors, and Emacs is no exception. The multi-major mode feature is specific to the major mode in use and isn't general purpose.
Its a text editor. It has text ;)
I use the Komodo IDE (commercial, expensive) to write Perl code.
There is a free edition, Komodo Edit, that doesn't have the IDE features but works well as an editor.
Bluefish is a pretty full featured, yet lightweight editor, and meets most of your needs. Check out the list of features.
Anyone knows good environment to program VHDL and simulate it (don't matter Xilinx or Altera) using Linux?
You're stuck with either vendors tools, which are spotty at best on Linux (though my experience with Alteras utilities are somewhat better than with ISE).
However, if all you want to do is run your testbed, not actually synthesize anything, ghdl will be of use.
As mentioned by Arpan (almost) every VHDL simulator is supported by Linux, but they are usually very expensive. Your best shot would be to use one of the following:
Altera DS Web edition (Linux support has just been added) which comes with a free version of ModelSim.
Symphony EDA Sonata 3.1 is available as a free version with limited support.
Xilinx ISE which comes with Xilinxs own simulator: ISim.
Just to add an update to this: Xilinx Vivado has now been released with Linux support for ubuntu/debian and (I believe) redhat/centos.
The software is free for a range of the smaller devices and more common IP cores and includes a mostly decent simulator that is integrated into the tools and is also free.
It has a pretty steep learning curve, as do most of these tools, but as far as software in this industry goes, they've really done a good job with it.
If you prefer open source tools, look into http://www.cliftonlabs.com/vhdl/savant.html - vhdl does not have too many options in the FOSS space currently. If you are opting for vendor tools, all vendors would do Linux version of their simulators. Modelsim is a personal favorite due to the easy-to-debug features that it sports.
For a coding environment, I usually use VIM with vhdl syntax checkers turned on. Sigasi apparently has a commercial IDE with fancy stuff as automatic code completion, on the fly syntax check etc.
Let us know if you have further questions.
Arpan
For coding vhdl, Emacs with vhdl-mode is a must. You can use advanced edition functions, view the structure of designs, manage architectures and configurations. You can setup for multiple simulators.
I use the modelsim from Altera's Quartus web edition. Beware if you use a 64 bits Linux, this version of modelsim is 32 bits only.
There is now QUCS (http://qucs.sourceforge.net/) as well. It is open source and based on FreeHDL.
It can be used to design and simulate circuits using a graphical interface. And it can also simulate VHDL. Although for this you must also design the circuit components on the graphical area.
This video shows it clearly:
https://www.youtube.com/watch?v=-RrQlzLsf18
I'm using the linux ppa on Debian Jessie and it works fine.
GHDL is a nice simulator for VHDL, and even works with some third-party libraries (for example, Xilinx UNISIMS).
If you combine it with gtkwave, you should have a full working VHDL simulator and waveform viewer.
GHDL also supports writing to .GHW waveforms, which are fantastic for small simulations, cause it does include (often) all of the signals on your design.
I've used them with standard RTL simulation, and also for post-synthesis simulation with Xilinx UNISIMs.
Both should be available in your Linux distro repository. If not, you can fetch them from:
GHDL: http://ghdl.free.fr/
GtkWave: http://gtkwave.sourceforge.net/
I've taken the plunge and installed Linux (Linux Mint 9 if that's important) on one of the boxes - and I'd like to start some small-time programming... but where to start.
My background:
Mostly LOB-applications in C#/WPF
Some XAL-basic
A wee bit of VB/VBA and SilverLight
I would like to turn to a new programming language - but still focused on desktop applications.
What I need:
An editor - preferably with good intellisense
A programming languages and the resources to get started
If anyone can point me in the right direction, I'd be happy for a little push...
EDIT:
Thanks for all the advice - I've come up with the following:
I'll start out with Python - and use Vim for the editor
I'll definetly try out Vala and Perl later and have MonoDevelop as backup editor - and if all else fails, I'll turn to C++. I've upvoted all answers as they all helped me.
EDIT2:
Okay - Vim was a bit too hardcore... Installed Cream on top.
Unlike the Windows world, where everything is designed to be Windows-only, I think it is quite typical to find that the rest of the world designs software to specifications, not to implementations. If you are developing in Java, then it doesn't matter what platform you intend to use, and Eclipse and NetBeans provide excellent tooling for Java on all platforms, Linux included. If you are developing in C++, then Boost and Qt provide excellent cross-platform support. If you need to go outside of Boost or Qt, then before delving into Linux-specific features, it is best to target the Single UNIX Specification also known as IEEE Std. 1003.1 POSIX, which will ensure that your application not only runs on Linux, but also on any UNIX-compliant operating system (including Mac OS X, FreeBSD, Solaris, and others).
As for IDEs and other editors... I think most programmers on UNIX platforms build from the commandline (using CMake, Make, scons, or some other standard build tool); however, there are plenty of IDEs with support for those that can run such tools automatically. Anjuta C++ and KDevelop are probably the easiest IDEs to use on Linux. Emacs (emacs, emacs-gtk, xemacs) and Vim (vim, gvim) provide a great deal of power and flexibility, but take a little bit more time to get used to. You might also want to consider a basic text editor such as GEdit (Gnome) or Kate (KDE); GEdit, though billed as a simple text editor, supports some more advanced coding features via a number of plugins. I don't recall whether it supports autocompletion, but it does support line numbers, automatic indenting, using spaces instead of tabs, commenting a block of code en-masse, and executing a Makefile with a shortcut.
Depends on how much you want to learn (from the easiest option to the hardest one):
Just use C# via Mono - that gives you access to most of the POSIX interfaces via Mono.UNIX, access to GTK# so you can do desktop apps, access to many linux libraries, so you can do more advanced stuff / integrate better. (you can program in Monodevelop - it's a Sharpdevelop clone, kind of VS-ish)
Learn Vala - it's a language compiled down to C, very similar to C# but closer to the bare minimum. It's gathers anti-MS people who wanted a response to C# IMHO. (never really used it, but apparently there's a Vala plugin for Monodevelop and the language itself is becoming more popular)
Learn Python - it's a scripting language. It's got bindings to most popular libraries (also GTK and QT) (IDE: anything that can edit text - you won't get good intellisense from a dynamic language anyways)
Learn C++ and QT, or C and GTK - although those are very low level languages where you will spend a lot of time just getting used to the environment. (IDE: Anjuta, Kdevelop, Monodevelop with C++ plugin, Eclipse+CDT, emacs, vim, etc. - anything goes really)
If you want "something new", but don't want to spend loads of time learning a completely new environment, I'd recommend trying out Vala. If you're more curious about different styles, go for Python, which I think has a very good tutorial for new people (but not new to programming): Tutorial or Beginner's Guide. With Python you also have an advantage of having the whole environment available in packages in any distribution, no such luck with Vala (yet).
Try perl and python and see what appeals to you. Learn bash to get around happily at the command-line. If you're feeling adventurous, give C/C++ a shot.
As for editors, this will probably spark up a holy war, but if you're using at the command line, check out vim and emacs, pick one, and lament never making friends of those in the "enemy camp." :-)
I say Python + Emacs or gEdit (what ever suits you)
Linux Mint is a KDE environment, right? That would make it pretty convenient for you to get started writing KDE apps in C++. The Qt toolkit which KDE is based on is widely considered to be relatively developer-friendly, which should make it easy for you to get started.
If you want to go on that route, I'd suggest downloading KDevelop, which is KDE's IDE (optimized for developing KDE programs, but it can handle several different languages). Alternatively, you could use Eclipse, which has C++ capability. You can find tutorials on how to develop KDE apps at http://techbase.kde.org/Development/Tutorials. (Unfortunately I think those are not as good as the documentation they used to have before KDE 4 came out, but it should be enough to get you started.)
EDIT: Come to think of it, you may want to try your hand at writing some C++ console (non-GUI) applications first, since it's probably easier to get comfortable with basic C++ before you jump into GUI programming. Given your experience, it shouldn't be too hard to pick up. Unfortunately I don't know of any particularly good resources to learn C++ with, but I'm sure that information is somewhere on this site, and KDevelop or Eclipse would work fine as an IDE for simple C++ console apps as well.
Weird that nobody suggested ALP, even if it is a bit outdated, it teached me a lot of things regarding the UNIX way of programming.
First, Learning C is a MUST!
Perl is underused for most stuff and you'll want to learn BASH Shell Scripting instead.
Grock the C code of existing (stable, well-written software) example is the Linux kernel itself! Google "Linux LXR"
Once you learn the basics to C (in Linux) the manpages are an invaluable resource. Just do man printf for information on writing characters to the screen, for example.
If you are talking GRAPHICAL GUI Programs, you need to learn GTK+ or one of the many cross-platform GUI toolkits (e.g. wxWidgets). Do not learn to program the X Windows System directly unless you are crazy.
For text editors, I like Komodo Edit and SciTE.