Windows GUI vs. Linux CLI if you are a visually impaired programmer? [closed] - linux

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am visually impaired and have used Windows my whole life and I rarely use the command prompt and mostly use the GUI with the Windows 7 magnifying glass. However, sometimes I wish that I could work faster, easier and more efficently as a programmer without straining my eyes. I wonder if it would be easier to learn Linux and just use the Linux terminal CLI instead of having to look for and icons and such in the Windows GUI. WHat do you think would be the best option in the long run as a programmer if you are visually impaired? Should I leave Windows and learn the Linux terminal instead of using the annoyng magnifying glass in Windows GUI? Do many visually impaired/blind programmers prefer Linux terminal more than the Windows GUI? Any tips? Is there a free magnifying tool that works good in Linux like in Windows? Does Linux have support for visually impaired programmers/developers? I already know that there is something called Vinux but I want other answers please.

The specific distinction between the two, notably ANY GUI and CLI, is that in a GUI, many have the issue that you have to "aim" at thing (i.e with the mouse).
Whereas CLIs tend to be deterministic from the keyboard (type in your command, Go Forward 3 Characters with an arrow key, etc.)
Many GUI have lots of command shortcuts making keyboard navigation much more realistic.
So, in those cases, it's not an either/or thing.
Obviously the advantage of the keyboard navigation is that "you now what to do", and can use your typing skills to do it (assuming you have the keyboard memorized) vs search for the rectangle of screen space that you need to place the arrow of the mouse.
So, if you're comfortable with your Windows tools, see if there are application short cuts you can use, or barring that, there are external "Macro" programs that help augment the keyboard as well.
You may well be able to find a happy medium for your work.

Linux (particularly Gnome, AFAIU) has good support for impaired users. You'd have to try the alternatives and see what works best for you. Your decision will be based on interface (be it GUI or CLI, on Linux there are several alternatives), on the availability of programs for your needs, and (last but certainly not least) your own tastes.
In any case, get in touch with other users around you using similar setups. A tame geek is always handy.

I agree with Will that it depends how well you know the keyboard. I use the command line in Linux on a regular basis. I am much quicker with the command line. Most Linux terminals give you a way to increase the font size. I do that sometimes when I am trying to find problems in my code.

Related

Should I invest Time Learning Emacs? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I know that this question has been asked many times before. However, I want to take everything that I have read about Emacs/Vim from other posts, give my own understanding of the situation, and request feedback from senior developers.
Here is what I see as the advantages of each type of IDE:
Advantages of Modern IDE
Many features work with little hassle or need to configure like: Text
completion / autogenerating closing tags Useful warnings tailored to
the language
Solving issues like the ones above often require a
significant time investment. I know that you become faster at finding
and installing the packages you need, but it seems like every
extension you need in a traditional editor is much more readily
available or already built-in in modern IDE / Code editor.
For compiled languages like Java, IDEs like IntelliJ seem to have a clear
advantage in the way they are able to analyze code and for the robust
debugging they offer. As far as I can tell, even if you spend a lot
of time configuring Emacs, there is no substitute for IntelliJ even
no matter how much time you invest.
Emacs/Vim Advantages
Though there is a lot more time investment, it seems like there is a strong consensus that the time investment has a significant payout for many developers. I do not necessarily even know these benefits, but I just know that Emacs/Vim is a very powerful and loved tool by many many highly experienced devs.
Extensibility
Availability (you can use either in a terminal very easily)
Great for SSH
Full org mode (versus the much more limited org mode in VSC)
Model-editing / Vim keybindings can make editing much faster once you learn it. Also, key chords in Emacs can make you much faster and keep you on the keyboard.
Related to above, but it seems that the more you commit to Emacs, the more you can get out of it because of the extensibility. Whatever your work flow is, usually there is a way to set up Emacs to take care of the whole nine yards for you.
I am guessing because of the above, it probably helps with your focus. You can keep everything inside emacs.
So my only big question is, "Do I have an accurate understanding of the advantages of each IDE?" A harder to question answer for me is, "Do I want to invest more time in learning Emacs or Vim?" (sidenote: will probably go with Doom Emacs) Right now I have been programming for two years. I am currently learning Javascript to help me get employed and will be focusing on that for months in the future. I keep going back and forth on whether I should just go with VSC and focus on Javascript or if I should learn Emacs concurrently.
I would recommend activate a Vim plugin within your IDE. That way you will learn bit by bit without affecting your productivity. After some time you can judge by yourself if it is worth learning more and go full Vim or just use the IDE. I use Vim for 5 years and I still have to take a look at the Vim documentation everyday. But I do it because it is fun to learn to do complex text manipulation with few strokes. If Vim does not suit you, try Emacs, then. But only trying each one will tell you what fits your style.
Here is a quick intro to Vim

Recommend Linux IDE for general Linux C & Kernel development [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
Can anyone recommend a good IDE for general C coding and kernel development under Linux?
A few conditions would be:
NOT ECLIPSE - or any other heavy-weight Java based monstrosity that has esoteric compatibility issues, and runs like a pig.
Must work and play nice with Cygwin - or other ways of running it remotely (through X, or - I'm open to alternatives).
KDevelop is a wonderful IDE and it actually supports some Kernel-type of projects such as writing device drivers, etc.
Isn't vim + ctags + gdb enough?
In short no.
I used pida for a while, which was cool, but a bit buggy. Looks like they've had another release since then so might be worth a try. It's python focused but perfectly usable for other things. http://pida.co.uk
I use gvim, with the git plugin http://github.com/motemen/git-vim
And just make tags, gitk, gitg, git grep.
Code::Blocks
I use it for both app dev and kernel dev.
Now I was scared by Eclipse as well and for the same reasons.
But it ended up being the only IDE I found so far that is able to handle the set of Linux kernel symbols for the WHOLE kernel source tree (functions, defines, structures, everything). It is able to parse the whole kernel sources in a decent time, some tens of minutes (one time operation for each kernel tree). So I at least use it as a very smart symbol browser.
What does this bring you? Full instant code navigation:
When studying kernel and developing kernel modules, this happens to be a HUGE time saver:
To follow a function call, move the mouse cursor to the (called) function name, press Ctrl, click on the symbol, bingo, it loads the source module and instantly gets you to the function source code. Press the back arrow, you're back at the call place.
You can follow whole call chains / stacks / programming trees this way, and just naturally following code paths.
Link from a var usage to a var definition, then follow up to the struct definitions and back...
And finally, I found that Eclipse was actually perfectly integrated in Linux:
It runs just like a native app and is not sluggish like I expected it to be. I didn't feel its large size. Now to get it working and achieve that, I had to install the latest / greatest Sun Java and make that the default java machine -- the open source Java package didn't cut it.
Just my 10c...
Well, NetBeans is a java monstrosity, but it's bearable, even on my netbook. I like the vi/vim plugin, and the undockable windows so that you can have a nice big editor window with the other stuff off in a separate window. Yes, it does a lot more than just Java, even C.
screenshots on my site
vim + gedit + acme, combination.
vim is good for console environment.
gedit with plugins is good for multiple files open.
acme just another way to open multiple files.

Would dropping X altogether hurt? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I live in the linux terminal all the time under my slackware GNU/linux system (an EeePC). By default, GNU Emacs won't start if It can't find several Xorg libraries. Assuming I will never use X software at all, would it make sense for me to drop all this Xorg stuff and compile emacs again ?
Are you aware of anything that could get me into troubles or making GNU Emacs not working at all ? Are there any advantage for me to keep all these dependencies ?
I am asking since as said, my main box is an eeepc with little storage and I am dangerously hitting the limits ;-)
At the very least, what would be smallest and minimal Xorg libraries one should keep to launch xterm (with a deported display) ?
Regards
You should be fine building an Emacs without X as long as you're happy having it locked up inside a terminal.
On several (remote) machines I work on, I've always installed/built Emacs without X-Windows for similar reasons.
Emacs is pretty easy to build, though you might have to spend some time getting the build options right. The included INSTALL file is pretty good.
Since it's mainly a text-based tool, Emacs works well in a console. (Who uses the silly toobar anyway?!) And the menu bar's main advantages are for discovering the features of newly installed libraries and for printing. But you can even access that from a tty with M-x tmm-menubar.
Having said that, you do have to reckon with the loss of a few key combinations which some Emacs packages make default use of. For example, one of the great reasons to use Emacs these days is org-mode, which makes heavy use of modifier keys + arrows to manipulate outline structures. In a Linux console, some of these are take for other purposes, so you have to live with a few workarounds. I've seen other convenience packages (for moving around visible windows, for example), that also use those keys.
Good luck.
As long as you're happy living without the mouse, there is no disadvantage to using Emacs as a terminal-only editor. And I see no advantage to having it loaded if you're not using it.
If you were using a more sophisticated Linux distribution, such as Debian, you could install something like emacs23-nox and get Emacs compiled without linking to any X library. You might see if Slackware provides a similar package. Or if the alien tool can convert the Debian package. Or as a last resort, change distros.
If Slackware doesn't provide a suitable package, you certainly have grounds for requesting one.
(Having said all that, I probably would find that the best use of my time is just to live with whatever version of Emacs my distro provides.)
Well... I'm usually using vim... ;-)
I usually install Debian's vim-nox package which is simply vim compiled with everything except GUI; I do that even on my workstations, where I do have full GNOME environment. I simply like the way vim works in the same terminal window I do other things.
When I tried emacs some time ago, the first thing I changed was to disable its GUI; I don't actually know how much did I lose, because I didn't know emacs very well--still I found no essential functionality removed.
You should try. You can always go back to the standard compilation.

What's so great about TextMate? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Almost every developer that uses a Mac practically worships TextMate. Why? What extraordinary features does it have that other text editors and IDEs don't? I did a quick search and the only really useful feature that I found that most other editors lack is the column selection option, but I wouldn't use a certain editor just for that. What makes TextMate so amazing?
TextMate was the first app I bought when I switched to the Mac a few years ago.
The features I like most are:
bundle support
clean UI
project support
shell integration
fast for small files (fast startup time)
HTMLTidy built in
CSS and XHTML validation integrated (needs online connection)
but it also has some drawbacks:
slow for big files
lack of updates (for some time now, but TextMate 2.0 seems to be alive)
The main selling point is the ability to extend the UI using bundles, which are basically just shell scripts. It is also fairly lightweight.
I think the appeal of TextMate is that its not bloated ... its has just the right mix of text editing / IDE features, implemented in just the right way :)
A lot of editors have column selections (although in a lot of them its buried deep down). The actual fact TextMate is liked is it's bundle system, which makes some repetitive programming tasks much easier. It's not considered a replacement for languages that have IDE-s with "intellisense" support (Java, C#, etc.), but it's really useful if you want to create programs in a scripting language like ruby or python.
TextMate is very powerful and at the same time usable, intuitive, elegant and lightweight.
On the other hand e.g. the two most popular Unix editors Emacs and Vi(m) are both very powerful but IMHO(!) their usability is not up to todays standards. (I use all three of them but think TextMate is by far the best.)
I've been trying to use TextMate as a replacement for Emacs. So far I'm not sold, though I like projects, simpler/cleaner UI, and the idea that it's extensible using python, etc. (I've never mastered elisp).
Things I don't like [in comparison to Emacs]:
no ability to swap point/mark or return to previous marks.
movement keys don't automatically take you out of inline search.
tags not so great (ex: no symbols can be found in java files without classes).
completion only searches current file.
NOT OPEN SOURCE.
Okay, I still want to give it a fair shot, but mostly I'm just missing Emacs' superior functionality and feeling increasingly forgiving of its challenging UI and more willing to try to learn elisp for real. Even for projects, using emacs desktop-save in a project folder can accomplish nearly the same thing.
-taranaki
Textmate basically has all the power of <insert your favorite unix editor here> with a nice Mac OS X UI wrapped around it and a great plugin system using bundles, of which hundreds are available and most are either good or awesome.
Community support.

As a grapical IDE user, should I be interested in traditional editors? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I use full blown graphical IDEs such as Eclipse CDT (Linux) and Visual Studio (Windows) which have features like auto completion, built in debugging, etc. These are features that I feel I can't live without.
I keep hearing about how many people use emacs/vim on a daily basis. How come people still use console based editors when graphical IDEs appear to be easier to use? I know how to use vim and emacs, but for day-to-day programming I just use an IDE as I find myself being more productive.
This is not a vim vs emacs question so please don't argue one against the other, please instead argue graphical IDE against console IDE.
As I'm already familiar with graphical IDEs, am I likely to gain any productive advantage by using emacs/vim instead?
I expect the answer is "maybe not", simply because of the learning curve, and I'd miss the usual graphical IDE features such as auto complete and the built in debugger; but apparently emacs supports auto complete and debugging. However, to someone who uses a standard GUI text editor, I'd probably say that they should use emacs/vim. What do you think?
Related questions:
SciTE user wants to know if they should use emacs.
vi user wants to know if they should learn emacs.
There is an advantage to learning to master a command line editor for those situations where a full IDE is not available. I know people who swear by VIM and people who swear by Emacs. I think the latter is more configurable, but you might not even need that. Since you already know VI, it might be enough for your needs.
I humbly admit that in the few situations where I do need to edit not through an IDE, I just use pico... :(
All that being said, I do have the impression that for some people in certain programmer subcultures and companies, using emacs rather than an IDE is an issue of honor, like using leaves rather than TP on camping trips.
I would always suggest knowing at least one command-line only editor, be it Vi, emacs, pico, ed, etc., even if you do most of your developing in an IDE. If you're more productive in an IDE than in another editor, then by all means use the IDE.
That said, my reasoning is this: say you're installing a graphics driver on Linux, and the driver is not being co-operative. Your version of X doesn't start correctly using the new configuration, and you need to edit your X configuration. You could copy the backup of the working configuration over the edited configuration, start X, use a GUI editor to edit the X configuration, and then restart X, or you could do the edit very quickly using an editor that doesn't depend on X (typically, command line).
Eclipse has built-in support for Emacs key-bindings. The only support I've seen for Vim is a commercial plugin.
You certainly don't need to learn one or the other, and you don't need arguments extolling the virtues of one editor vs. the other, but if you do learn Emacs, you can customize your Eclipse environment to use the Emacs key-bindings (it's under Windows->Preferences->General->Keys). This (in my mind) can greatly increase your productivity in Eclipse as your hands rarely need to leave the 'home' line of your keyboard.
This feature is one (of many) reasons I use Eclipse for my 90% of my development.
I have been an emacs user for nearly 10 years. Emacs is an IDE with X support it is not console based. It does have auto completion it does have integrated debugger. The advantages i consider emacs over other IDE's are you said that you use eclipse in linux and visual studio on windows well i use emacs on both OS's. Don't need to change tools when switching OS's. Also on my daily work i work with multiple languages ruby,c/c++,java emacs supports much more languages than any other tool out there. And once you master using your keyboard you are 100 times faster than using an IDE. You can move around a file in blazing speed. i got my terminal , connection to my database server right in the editor no need to change windows and loose my train of thought. Another nice feature is i can edit files on machines half way across the world just like they are sitting on my local file system.
Disadvantages are both emacs and vi have steep learning curves in order to use them properly you need to invest some time on them but the way i see it why not master one tool that works on all languages and works on all OS's. then to learn how to use multiple tools and learn a new one when you wanna learn a new language.
Using emacs after knowing vim will make that task somewhat annoying. The editor war has been long and there have been many casualties.
In short, you should simply evaluate whether you think the editor(s) you are using currently are not up to your expectations. If you feel hindered, try something new. If you are working just fine, keep working!

Resources