How difficult is to develop a text editor in windows? [closed] - text

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
How difficult is to develop a text editor in windows?
edit: something like this for a target: http://intype.info/home/index.php

That depends on what sort of text editor you want. For a really simple editor, you can just host an EDIT control (or RICHTEXT control), in which case you have a working editor in well under an hour. If you want to write a full-blown programmer's editor, you'd probably want to measure the time in months or years instead of minutes.

Depends on what tools you use. To develop something offering basic functionality (like Notepad) using C# and WPF or Windows Forms (or VB if that's your poison) would be pretty easy if you knew the language and the API well. Doing something similar with Python, Ruby, or something else and Tk, GTK, Qt, etc. wouldn't be terribly hard either. Same goes for Java and AWT or Swing. Any graphics toolkit with a high level language is going to give you most of the scaffolding that all you really need to do is define the layout and add some logic (opening files, saving, etc.) Developing with C or C++ (unmanaged) and the Win32 API would be much more difficult, but still relatively simple.
You could probably put together a working Notepad clone rather quickly. It gets harder as you add features. I know that with my language and toolkit of choice (Python + Tkinter) I could probably do a feature for feature clone of Notepad in a few hours, right down to appearance and UI.

Pretty easy actually:
use whatever GUI toolkit you want
add a multi line textbox control
add load/save options
compile/build/link
and you just made a poor man's notepad :)
Now seriously, what do mean with a text editor? What kind of features are you looking for? Do want something simple like notepad, something totally awesome like notepad++, or something enormous like word?

Related

How to run a Linux/C program in a customized way? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I need to write a program that is to be run as follows: <program_name>_ <space> _<file_name>_ <space> _<stuff to be written into the file>. I am new to Linux/C/Unix programming and so I need your help. From what I can understand, I need to write a program titled <program_name>, pass two parameters in the main function which are <file_name> and <stuff to be written in the file>, and then go through the code as usual, writing all the required lines. Am I going about this the right way? Also, it is mentioned that I am to create a make file out of the program. As I am thoroughly unfamiliar with Linux, I would like to know if that this would change anything. That is, would my approach to the program change because I am to make a make file out of it? Thanks for the help! :)
You should search for "beginning linux" to get some web sites that will give you the basics of navigating around in Linux, notably on the command line.
Then I'd search for "beginning vi" to learn the basics of the vi editor. If you're using a GUI, then you can simply use their simple GUI text editor.
Then I would search on "Beginning C programming linux". That will give you several links, and will get you through the basics of creating a C program and compiling it with GCC.
That should keep you in enough trouble for the short term until something clicks or you learn enough new terms to keep searching for.
Good luck!

Wish to learn a new programming language [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 11 years ago.
Improve this question
I wish to learn a new programming language but there are so many out there! So thought I'd ask here if there are any that correspond with what I wrote in this list that you might know of:
Making applications with GUI
That would preferably run on any system, preferably Windows (I run Windows 7)
That would not need a hardcore IDE and hopefully no compiling
That is not incredibly advanced (Hard syntax paired with OOP etc.)
That does not need any 'platform' or 'component' installed to work (can be opened with a click, say an .exe file or any other file type)
I already know:
HTML, JavaScript and PHP
Thanks in advance for your input.
I'd recommend Python to anyone.
You seem to have some mutually exclusive options here.
For example, no compiling and opening an .exe. An exe file is generated via compilation.
IMHO, Qt probably best suits your needs. It runs on just about everything, doesn't need an IDE (though qtcreator is a fantastic one, I suggest trying it before you choose not to use an IDE) and is easy to learn and well documented.
If you want compile-less then you'll need to use the python or other scripting language bindings too it.
I would suggest C-sharp / F-sharp combination with WPF thrown into that to get GUI's going...
It a pretty rough learning curve but the combinations are endless...
A couple things to certainly look into:
PRISM
M-V-VM ( Model , View, Viewmodel)
If you are interested in an other back-end persistancy try going into object databases, such a great new world opened up for me when I discovered all the things you can do with that... ( DB4O is my preferred one at this moment.. it has loads of info and a very active community )
It is only limited by your imagination ;)
This is one of those questions of having 10000 people going to an Ice cream shop and then choosing which flavour they want. So far I have worked with Delphi and C#, I am doing SQL, Asp.net and javascript, well, basically!
The answer should be somewhat simple. Go check out which programming language fits your needs, and is in great demand in the working world. If you want to program websites for companies, then PHP, ASP.NET and the older HTML is for you. As far as I know, flash is also coding.#
Another way to look at this question is not only the availability of the language you seek, but its future, if it will become obsolete or the coding language of the century.All coding is the same, but some are more rigorous in certain tasks (like C# and delphi are good languages to build forms applications to handle tasks for data manipulation, integration and whatnot.)
The answer to this question is to explore! What is Your flavour? Sitting in front of a desk doing CRUD operations and staring into a gui which has countless buttons and textb
oxes, but real in-depth code, or to start into a rich gui with XML based code?
I recommend HTML5+Javascript.
You can use Canvas or SVG for
graphic.
It works depending on the browser. So
any OS or system can use it.
Javascript and HTML can be edited in
any thing for example: notepad.
You can write your JS using OOP.
How to open a HTML file? just
double-click on it.
Have fun :)

How Linux programmers create GUI application without using IDE? [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 9 years ago.
Improve this question
I have read some comments in some forums saying that Linux programmers usually do not use any IDE. They prefer to use Vim and Emacs to do their programming.
If I'm not mistaken, Vim and Emacs are just text editors, similar to notepad, but with syntax highlighting.
I just want to know how Linux programmers create complicated GUI application without using any IDE.
Thanks.
You can create gui just from source code (for example: http://library.gnome.org/devel/gtk-tutorial/2.17/c39.html#SEC-HELLOWORLD). Alternatively, you can use stand-alone GUI designers (for example, Glade for GTK+ and Qt Designer for Qt) to design GUIs and use them from application written in Vim or Emacs (or anything else).
You are making a big assumption - that most Linux developers are developing GUI applications.
Many developers that follow the unix philosophy create text based applications (for example, see the git, the source control management system).
When creating a GUI for Linux, some developers will use text files and some will use designers to help with it.
One way or another, the GUI is also defined in text files. These are either generated by a designer or written by a programmer. It makes little difference to the compiler.
If you really want to understand how this works, read the tutorials for any of the GUI tool kits. You write code that uses a library to build a GUI. For a great example install python and the wxPython and its demo. The demo provides runnable sample programs for every GUI widget in a great format - one tab shows the UI and the other shows the code. The GUI is created from the code, unlike some environment where you drag controls and the code is created for you.
There are of course NxM ways to do this, where N is the number of toolkits and M is the number of languages. I just pointed out that the wxPython combination has great examples. I've also done a little GTK with Pyhon and the online docs are good too. Examples can be found in other languages of course.
Emacs and Vim are IDEs--integrated development environments, which means they assemble a variety of programs related to writing programs into one place. The part you are conflating with an IDE is a component of some IDEs called a form/gui layout designer. I am not sure what Visual studio calls it. These designers programs, often integrated into an IDE like Visual Studio, allow you to visually arrange GUI elements.
However, designers help you design GUIs only for specific frameworks. In Windows, Visual Studio allows you to arrange Windows Forms in .NET. GTK, another GUI framework popular on Linux, has its own stand alone designer. Qt also has a (very nice) designer. Netbeans has a Java Swing form designer.
The key point is: all that these designers ultimately do is automatically generate some code that you could otherwise write by hand in a text editor.

Would you recommend vim/emacs for beginner programmers? [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.
For someone just starting to program, would you recommend using vim/emacs, or should you use some IDE? Like are vim/emacs better suited for more advanced users than for beginners? I'm just wondering because I'm trying to get some of my friends to program.
If they're just starting programming, I'd not recommend VIM to begin with.
they'll have enough on their plate to begin with learning the ins and outs of programming
depending on the language/platform, I think they'd appreciate an IDE with code completion , general language support etc. (I know you can do this in VIM, but it's a lot more seamless in an IDE).
Note. I'm a VIM fan, and I run my IDEs with VIM plugins, so I have nothing against VIM as such.
I note in your comments you're looking at teaching them Java. BlueJ is a Java IDE geared towards learning Java, and may be a useful introductory tool.
When I used to teach C & C++ commercially, back in the late 80s/early 90s, we did all our teaching on UNIX boxes, with vi as the editor. A lot of our clients were MSDOS (and later Windows) users. These guys used to have, on day #1 of a 5 day course, to learn the basics of UNIX and the basics of vi, at the same time as they were learning C and C++. They all bitched like mad (and I couldn't blame them) but they all managed it.
Perhaps we expected a lot more of each other back then. Still, we haven't changed genetically in that short period, so if they could learn vi easily then, programmers today can also learn it, without too much trouble.
Avoiding the subjective question of editor choice, it's not so much about advanced/beginner as learning too much at once. It's probably a good idea to separate the coding learning curve from the editor learning curve. If you're busy learning to code, use an editor you're already comfortable with (doesn't have to be an IDE, could be gedit, etc.). Once you're comfortable coding, you can move on to an editor of your choice if you're not happy with what you already knew. An advanced coder might still prefer a simple editor, and one who hasn't learned too much might still want to work faster and switch to Vim.
Since you say you'd suggest Java to them, Eclipse is probably the way to go. If you were suggesting Common Lisp, I'd say Emacs without hesitation. For Python and the like, I'd say to use whatever text editor they know now; vi, vim, Emacs, Geany, whatever. But for Java Eclipse is a pretty good standard choice.
Whatever editor you choose, have the cheatsheet sticked next to your screen.
People either like vi (or emacs) or hate it regardless of their skill level as programmers.
I am by no means an emacs whiz, but in terms of learning the basics of a new language I think it is handy.An IDE can be a distraction from what you are trying to learn (So you end up spending time learning an IDE rather than a language) and emacs provides both good indenting and syntax highlighting, as well as easy access for compiling, debugging, and accessing the shell.
I know I'm going to get voted way down by the legion of emacs/vi people here, but in terms of learning a language, an IDE with intellisense (or whatever the generic version is called) is absolutely indispensable. For instance, if you use visual studio, you will spend almost no time playing with the IDE. The automatic completion clearly shows the relationships of member variables, and makes it so that you don't have to remember minutia. Scope and type resolution is also invaluable for the beginner. Most important however, is that whatever you are using contains an industrial strength debugger. Logging with strings to a text file is no way to go through life. Even the legion of emacs lovers will probably admit that someone is far more productive with a professional IDE and a beginner is far less likely to get frustrated. Now, if you are going with something opensource/free, your experience may vary.
If you're just starting and you're learning Java, I would go for one of the graphical IDEs. Yeah, something like Eclipse or Netbeans is fairly bloated, but it doesn't change the fact that they make the barrier of entry way lower with suggested error fixes and the like.
vi or emacs in combination with gcc are great, but I would go with something more beginner-friendly to begin with.
If they are beginning to learn programming, it is better to start with a simplae text editor like gedit or geany. But learning to use emacs or vi down the road will be a hugely enlightening experience. It might be be a good idea to learn emacs by using for plain text files (notes, todo lists), so there is not the distraction of learning language specifics.
Run the vimtutor command. It's an interactive way of learning a lot of useful basics in Vim. Vim is very powerful and efficient. You won't learn everything there is to know about it at once. You'll continuously learn more handy features of it as you continue to use it. If you get the basics down, you'll start spending more time in command mode. Do not use the arrow keys. It may feel awkward at first using hjkl keys to move around, but it will soon feel natural and become faster because your hands do not leave homerow on the keyboard. One of the great things about Vim is the user almost never if ever needs to take his or her hands off of homerow.
As for Java, Netbeans kicks ass IMO. Why shouldn't it? It's made by the same people who developed the Java language. So when I am using Netbeans, I use it with jVi plugin that allows me to work with it just like I were using Vim.
vi and gcc, nothing else
Editors seem to be a touchy subject. It really seems to be personal preference. The only reason I ever learned vim was because of the workplace required me to. The only reason I ever used emacs was because of school. Having said that, I think just using the available development tools (VS for .net framework, Eclipse/NetBeans for Java, etc) would be best in my opinion, but again, its definitely personal preference.
It depends on what platform and language you plan to start and then boils down to individual preference. If it happens to be windows and you plan to do C#/VC++/VB then Visual Studio IDE is the best.
I used emacs when I started on Scheme and python and I found it handy.
cheers
I learned Java using a combination of DrJava, BlueJ and Eclipse. I started with DrJava since it had an interactive Java shell. Then I played with BlueJ and finally Eclipse once I thought I knew enough.
Now that I "know" a couple languages I just use Vim.
I'd recommend Vim for anyone working with a text editor, but not at the same time as learning programming.
I don't know about emacs, but I would recommend learning Vim for a beginner in a heartbeat. The vimtutor program is a great way to pick up the basics. It is a bit of effort, but you soon get used to it.
I started using Vim when I was learning HTML, and it was a massive improvement over something like Notepad. It soon replaced nano as my command-line text editor of choice in Ubuntu as it's easy to navigate around fast with Vim. Then, I decided to learn Python and I found it was easy to get started with it because I was already familiar with Vim. Now I'm learning C and it's great to have an editor I'm already familiar with as it means I don't have to worry about getting used to a new IDE or text editor. This means there's less work for me to do.
I've found knowing how to use Vim gives me a significant productivity boost over any other editor I've used. The only downside is the key bindings get burned into your brain, to the extent that I keep reaching for Escape when I want to move around in a Word document!

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.

Resources