Live data from Hacker News

IDEas: Tools for Coders

omegaortega.com

31–40 of 60 posts

Re: IDEas: Tools for Coders

#31
post #11

Earlier quoted context omitted.

> create an industry standard plugin protocol. I feel that Software Engineering/Science is lacking a body of knowledge: something which is basically required in other professional industries (architecture, medical, physics, electrical engineering), etc. Software Engineering/Science is at a disadvantage because there is no limitation placed on us by nature: an EE can't simply change the brightness of the sun to meet a…

an EE can't simply change the brightness of the sun to meet a requirement. We can. Wow, you can change the brightness of the sun to meet a requirement? BTW, there are quite a few limitations placed on you by nature: uncomputable numbers, NP-completness, ...

> BTW, there are quite a few limitations placed on you by nature: uncomputable numbers, NP-completness, ...

Not really, NP-completness is only important if you want perfect solutions, which aren't necessary. Uncomputable numbers have no usage in real world scenarios.

Finally it is important to note that while a physical turing machine cannot exist due to lack of infinite tape, real machines are also more powerful than turing machines, for instance by having a real time clock and communication abilities.

For these reasons saying what we can and cannot do is quite complicated. For almost every situation possible, the only answer that is negative about capabilities is "it will take a while".

Re: IDEas: Tools for Coders

#32
Oh! You just noticed that IDEs suck? Where have you been living, under a rock?

Computer programmers are one of the most dismal professionals on that planet. How many so called programmers/coders can even write a simple parser or a compiler? Less than one percent I suspect. I should know because I am one of them. After dabbling away with Aho and Ullman somewhere in the 80s or 90s I haven't approached the subject since.

Ever since Smalltalk came out it has been downhill all the way, and it is only now a lot of the current IDEs have caught up with it and in the last few years have begun to extend the concept.

I believe that:

1. Learning to understand and write parsers and interpreters should be one of the first things taught in computer science even before the whole gamut of data structures and algorithms have been studied.

2. Being able to develop IDEs should part of every computer science course. They may even be developed to help illustrate the data structures and algorithms mentioned above. Unlike most professions computer scientists are the ones most capable of building the tools for creating, analyzing and illustrating their work, so why are they the ones that as far as we can tell use the shittiest tools available to most professions? Honestly I blame Sun and IBM for this. The moment Java came out everything went down hill. Then the web came, then 'scripting' , then everybody decided that they could and should 'build' everything using Notepad, VIM or Textmate.

3. The tools are there, Smalltalk guys have been using and developing their own tools for ages, only the targetted graphical environments have been split up and the OS owners, Microsoft in particular keeps blowing hot and cold as to which one system developers should target. IDE and graphical tools development is so interactive that the idea of using traditional compiled languages to develop them is simply absurd unless you use very fast compilers and computers. It is time they went 3D as well may be using some Blender, Unity3D or some other gaming toolkit to bring them up to date. 2D text and graphics are boring.

4. The bottom line is IDEs should be something developers ought to create or collaborate to create themselves. The big corporations should stay out of that, ie the decisions shouldn't be commercial decisions. It seems that a sad immaturity of computer programming as a profession has led to development tools being dictated by clueless profit seeking corporate bosses. They should be the decisions of developers guilds which should not be linked with corporate interests of any kind. You know what you want, just do it yourselves.

5. What else? Yeah, get your parsing skills together, and don't develop it in Javascript unless you plan to develop your own version of Typescript or Dart later on when subtle bugs begin to creep into your cherished IDE.

PS. Sorry for the trolling at the top. I just couldn't help myself.

Re: IDEas: Tools for Coders

#33
For #1, I think the Mylyn plugin for Eclipse does something vaguely similar:

"Task context management in Mylyn is based on the idea that your interaction with a system can be transformed into a degree-of-interest model, where each element in the system is weighted according to its relevance to the task at hand. This degree-of-interest weighting forms the context of all the elements relevant to the task. The task context can then be used to focus the UI by highlighting the most important elements, filtering the unimportant ones, and allowing you to perform operations on elements of interest "

I use IntelliJ (or pycharm) myself but some people swear by Mylyn. Not having used Eclipse myself, the screenshot does't really tell much: http://www.eclipse.org/mylyn/images/mylyn-3.1-screenshot.png

Re: IDEas: Tools for Coders

#34

Earlier quoted context omitted.

> create an industry standard plugin protocol. I feel that Software Engineering/Science is lacking a body of knowledge: something which is basically required in other professional industries (architecture, medical, physics, electrical engineering), etc. Software Engineering/Science is at a disadvantage because there is no limitation placed on us by nature: an EE can't simply change the brightness of the sun to meet a…

"I've put a lot of thought (about 6 years now) into a way to standardization communication between software systems and even parts of software. It's a hard problem to crack." HTTP? It's not perfect, but it seems to be what our industry has settled on as the universal way for pieces of software to talk to each other. If you are thinking in terms of the payload, JSON seems to be filling that role.

Http is a protocol we use to communicate between systems, that is true, but not the parts of software. For example, to print "Hello World" on the screen, we use a sub-routine like WriteLine. The standard we use to communicate between software sub-systems, in this case, is a function with parameters. So, WriteLine ("Hello World") pushes the text "Hello World" into the sub-routine WriteLine.

Parameters are, for basically all languages, the means by which information is communicated between sub-systems.

The thing is, it is really hard to standardize the communication between sub-systems because sub-routines can vary widely in how they are defined (the possible combination of parameters and types is quite high). In fact, you can end up with thousands of different sub-routines: even in the same program. Each one unique and thus "non-standard".

This is the problem we need to crack. How do we create frameworks that don't lead to thousands of specialized interfaces: each one making the framework that much harder to use.

Re: IDEas: Tools for Coders

#35
post #11

Earlier quoted context omitted.

> create an industry standard plugin protocol. I feel that Software Engineering/Science is lacking a body of knowledge: something which is basically required in other professional industries (architecture, medical, physics, electrical engineering), etc. Software Engineering/Science is at a disadvantage because there is no limitation placed on us by nature: an EE can't simply change the brightness of the sun to meet a…

an EE can't simply change the brightness of the sun to meet a requirement. We can. Wow, you can change the brightness of the sun to meet a requirement? BTW, there are quite a few limitations placed on you by nature: uncomputable numbers, NP-completness, ...

> Wow, you can change the brightness of the sun to meet a requirement?

Sure, why not? sun.brightness = sun.brightness * 2.0f;

In fact, a lot of games play with physics to get cool behavior. I can adjust the "constant" G in my game to be something other than 9.8 m/s to make it interesting.

One moment the G vector may be down and then suddenly it flips up. Why not?

Re: IDEas: Tools for Coders

#36
post #27

tl;dr: Idea 1 is Vim (or any other programming editor). Idea 2 makes no sense, projects have too many symbols for them to be meaningfully encoded in rememberable icons, plus I don't really see how it would condense information. Idea 3 is LabVIEW. Idea 4 is Visual Studio's code map. These ideas are all basically the first thing anyone comes up with when dreaming up a new IDE. The big problem of IDEs is that they're a…

>> These ideas are all basically the first thing anyone comes up with when dreaming up a new IDE.

Indeed.

Use of icons was one of the topics in an April fools' joke from Bjarne Stroustrup [1, 2].

[1] http://www.stroustrup.com/whitespace98.pdf

[2] https://www.cct.lsu.edu/~hkaiser/spring_2012/exercises/week6...

Re: IDEas: Tools for Coders

#37

Oh! You just noticed that IDEs suck? Where have you been living, under a rock? Computer programmers are one of the most dismal professionals on that planet. How many so called programmers/coders can even write a simple parser or a compiler? Less than one percent I suspect. I should know because I am one of them. After dabbling away with Aho and Ullman somewhere in the 80s or 90s I haven't approached the subject since…

I sort of agree with you, but I'd tweak it a little. I think we need to move to a situation where we refuse to use languages unless they offer "compiler as a service." Ideally, this would be open source for each programming language.

As a result, every developer wouldn't need to know how to write a parser/compiler, but rather would need to master the usage of the API the compiler-as-a-service offers. (For example, imagine JetBrains Idea for Java or Resharper for C# as a suite of open source, api-driven libraries).

Then, we could have IDE's with all kinds of features. In addition, we could write programs that transformed or modified our code bases.

This lets the "hard work" of compiler/parser building be centralized to a few developers, but spreads the benefits around to most everyone.

Since this is already happening in some languages (JetBrains, what Google is doing with clang for C/C++, and apparently Rosyln from Microsoft), it seems like only a matter of time before its power becomes apparent and it becomes a requirement for a language to be taken seriously.

I see no reason why Python and Ruby couldn't expose the compiler's AST as a service as well (obviously it would be limited by metaprogramming and dynamic typing ... perhaps in those cases we'd need "interpreter as a service" ... hmmm).

Re: IDEas: Tools for Coders

#38
post #15

Here's an IDE idea: create an industry standard plugin protocol. Most of the cool stuff an IDE does is code analysis and transformation e.g. refactoring, error analysis, and autofill. The other half is "makes coding pretty", "provides good shortcuts", and other UI considerations. Now for the latter - that is great, and everyone has different strengths and weaknesses. And that is just a UX issue. For the former howeve…

"Here's an IDE idea: create an industry standard plugin protocol. " Just what we need - now there will be N+1 incompatible protocols! (shamelessly stolen from xkcd)

I guess someone could make a platform for plugins then also provide a translation plugin for IntelliJ, Eclipse, Emacs, Vim, VS etc. So they can all use the same plugins.

Re: IDEas: Tools for Coders

#40
post #39

My IDEa: HTML parsing & formatting within code comments: https://groups.google.com/forum/#!topic/ace-internals/pTcFXP...

Sure, why not? Worked really well for E-mail.

Actually, if that's a route worth taking I'd rather see LaTex than HTML.

Or just Markdown.

Post reply on HN