What about the IDE?

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

What about the IDE?

devlaam
The larger my designs get the more the need arises
for tools that mature ide's have. Like find/replace,
parenthesis matching, file management, movable panes,
organizable debug information, etc etc. Don't
get me wrong, i think that you people did a wonderful
job in making this tool rock. We already have
syntax highlighting, undo/redo mechanism etc.

But with this post i do not want to file a wishlist
for the editor.

Contrary, i think that what has to be done is still
a lot more than already has been done. The question
is of course, given the length of such a wishlist,
compared to the developer community size, when will
this ever be completed? I could well be that the
wishlist grows much faster than we can complete
the issues.

It would be best if the community starts making some
choices what to implement and more important, what not.
Then a road map can be set up, that can function as guideline
for the future. The road map should be something that is
feasible with the current developer community and
available time. Keeping focus is the most important
asset here.

In my view the principal strength of the application is
the possibility to program your designs. May be obvious,
since that is what openSCAD is all about, but it directly
follows from that that anything else is not(!) the core
business of openSCAD and should not take away precious
development time. So let me list a few issues we should
not put too much time in.
(a kind of negative wishlist if you like).

- IDE design. This is so much work, it is a project on its
   own. Is it possible to integrate openSCAD into Eclipse
   for example? A lot of programmers know this IDE, and it
   has everything aboard you need (file management, syntax
   highlighting, refactoring etc etc)

- Editing possibilities in the viewer (i see requests for this
   often). This is very difficult to realize reliably (apart
   from maybe the trivial cases), and takes away much developer
   resources. How many program sources can you change from
   the running application? None. It is simply not the way
   programmers think, it is how designers think.
   A viewer can also be integrated into Eclipse, or use a
   stand alone tool for that. What is possible though is
   give the viewer 'debug' information, so you can inspect
   the underlying code by hovering for example.

When this is decided, time becomes available so maybe we
can start thinking about the design of the language,
which is the key value of openSCAD.

Just trying to contribute to idea's, hoping i did make
nobody angry.

Ruud.

BTW: directly after the release of 2013.06 i merged it
with my branch on github, containing the loop and
loop_extrude extension.


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

Jesse Guardiani
I know this isn't the answer you want to hear, but 13 years as a professional software developer across multiple systems has taught me to trust only one IDE: vim + grep

The learning curve is high, but vim installs on every machine known to mankind. You never have to be without it. And grep is one of the most versatile search systems I've ever used. A serious added benefit is that vim works just fine over SSH, so you can use it on remote machines.

I catch a lot of flak for this policy from IDE junkies, but it works really, really well. I promise.

I know it's not for everyone, but I just thought I would throw it out there as a possible alternative.

--
Jesse



On Sun, Jun 23, 2013 at 9:58 AM, Ruud Vlaming <[hidden email]> wrote:
The larger my designs get the more the need arises
for tools that mature ide's have. Like find/replace,
parenthesis matching, file management, movable panes,
organizable debug information, etc etc. Don't
get me wrong, i think that you people did a wonderful
job in making this tool rock. We already have
syntax highlighting, undo/redo mechanism etc.

But with this post i do not want to file a wishlist
for the editor.

Contrary, i think that what has to be done is still
a lot more than already has been done. The question
is of course, given the length of such a wishlist,
compared to the developer community size, when will
this ever be completed? I could well be that the
wishlist grows much faster than we can complete
the issues.

It would be best if the community starts making some
choices what to implement and more important, what not.
Then a road map can be set up, that can function as guideline
for the future. The road map should be something that is
feasible with the current developer community and
available time. Keeping focus is the most important
asset here.

In my view the principal strength of the application is
the possibility to program your designs. May be obvious,
since that is what openSCAD is all about, but it directly
follows from that that anything else is not(!) the core
business of openSCAD and should not take away precious
development time. So let me list a few issues we should
not put too much time in.
(a kind of negative wishlist if you like).

- IDE design. This is so much work, it is a project on its
   own. Is it possible to integrate openSCAD into Eclipse
   for example? A lot of programmers know this IDE, and it
   has everything aboard you need (file management, syntax
   highlighting, refactoring etc etc)

- Editing possibilities in the viewer (i see requests for this
   often). This is very difficult to realize reliably (apart
   from maybe the trivial cases), and takes away much developer
   resources. How many program sources can you change from
   the running application? None. It is simply not the way
   programmers think, it is how designers think.
   A viewer can also be integrated into Eclipse, or use a
   stand alone tool for that. What is possible though is
   give the viewer 'debug' information, so you can inspect
   the underlying code by hovering for example.

When this is decided, time becomes available so maybe we
can start thinking about the design of the language,
which is the key value of openSCAD.

Just trying to contribute to idea's, hoping i did make
nobody angry.

Ruud.

BTW: directly after the release of 2013.06 i merged it
with my branch on github, containing the loop and
loop_extrude extension.


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

Torsten Wagner
In reply to this post by devlaam
Hi,

- IDE design. This is so much work, it is a project on its
   own. Is it possible to integrate openSCAD into Eclipse
   for example? A lot of programmers know this IDE, and it
   has everything aboard you need (file management, syntax
   highlighting, refactoring etc etc)


We already have the possibility to use an external IDE. Thus, eclipse people could jump on and create a OpenSCAD plugin for it. Same is true for the vim-people and there is already an emacs-mode.
I like the idea how e.g. arduino and processing are dealing with this issue.
Keep a basic, reduced editor with OpenSCAD thus, people can start or make quick changes.
However, allow to use external editors and IDEs. One could think of a more exposed CLI, or a socket communication, etc. which enables IDEs to work more directly with OpenSCAD.
 
- Editing possibilities in the viewer (i see requests for this
   often). This is very difficult to realize reliably (apart
   from maybe the trivial cases), and takes away much developer
   resources. How many program sources can you change from
   the running application? None. It is simply not the way
   programmers think, it is how designers think.
   A viewer can also be integrated into Eclipse, or use a
   stand alone tool for that. What is possible though is
   give the viewer 'debug' information, so you can inspect
   the underlying code by hovering for example.


Well how many languages need a visual output to show the result?
I agree about editing, but find it very attractive to get visual debug capabilities within OpenSCAD. We have some already, but it could be extended. Some are easy to do e.g. only compile of marked lines, compile of single modules, etc. Some require a bit more work. E.g. coloring all output effected by the marked lines of code or jump to the code, after mouse selection of a mesh.

As far as I understand, many of these tasks are difficult with the current code-base, since there is no tracking of intermediate objects. This, again as far as I understand is the same reason, why there is no possibility of an object oriented programming approach like. a=cube([10,10,10]); a.corners.round(1);
Sometimes I would love to have this style in addition, but I guess I get a lot of other opinions ;)

I think this was disscussed alreday and we really might need a FAQ in the wiki, but for me OpenSCAD should split the compiler and the editor. Keep an editor and the preview window and develop it separately. However, make OpenSCAD being a CLI-tool. This would allow to work independent on editor and language.


All the best

Torwag







_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

David Powell
 using an external editor like kde's kate   does offer search and replace and limited IDE fuinctions , as well as other mark up features although there's no native .scad mark up supported as yet  , building such features into scad would  be a long wish list and remove developers from other tasks that are more important,  there are viable alternative  editors that can be used that are mid way between a full ide and an editor
and with some like kate, kword, notepad2, etc  support for  scad mark up is  where the feature request should be placed 

the new scad editor syntax highlighting does improve the internal editor quite a bit 
it also is a nice none cluttered internal editor that makes openscad  quite nice to use stand alone most of the time 



On Sun, Jun 23, 2013 at 3:46 PM, Torsten Wagner <[hidden email]> wrote:
Hi,

- IDE design. This is so much work, it is a project on its
   own. Is it possible to integrate openSCAD into Eclipse
   for example? A lot of programmers know this IDE, and it
   has everything aboard you need (file management, syntax
   highlighting, refactoring etc etc)


We already have the possibility to use an external IDE. Thus, eclipse people could jump on and create a OpenSCAD plugin for it. Same is true for the vim-people and there is already an emacs-mode.
I like the idea how e.g. arduino and processing are dealing with this issue.
Keep a basic, reduced editor with OpenSCAD thus, people can start or make quick changes.
However, allow to use external editors and IDEs. One could think of a more exposed CLI, or a socket communication, etc. which enables IDEs to work more directly with OpenSCAD.
 
- Editing possibilities in the viewer (i see requests for this
   often). This is very difficult to realize reliably (apart
   from maybe the trivial cases), and takes away much developer
   resources. How many program sources can you change from
   the running application? None. It is simply not the way
   programmers think, it is how designers think.
   A viewer can also be integrated into Eclipse, or use a
   stand alone tool for that. What is possible though is
   give the viewer 'debug' information, so you can inspect
   the underlying code by hovering for example.


Well how many languages need a visual output to show the result?
I agree about editing, but find it very attractive to get visual debug capabilities within OpenSCAD. We have some already, but it could be extended. Some are easy to do e.g. only compile of marked lines, compile of single modules, etc. Some require a bit more work. E.g. coloring all output effected by the marked lines of code or jump to the code, after mouse selection of a mesh.

As far as I understand, many of these tasks are difficult with the current code-base, since there is no tracking of intermediate objects. This, again as far as I understand is the same reason, why there is no possibility of an object oriented programming approach like. a=cube([10,10,10]); a.corners.round(1);
Sometimes I would love to have this style in addition, but I guess I get a lot of other opinions ;)

I think this was disscussed alreday and we really might need a FAQ in the wiki, but for me OpenSCAD should split the compiler and the editor. Keep an editor and the preview window and develop it separately. However, make OpenSCAD being a CLI-tool. This would allow to work independent on editor and language.


All the best

Torwag







_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566


_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

clothbot
In reply to this post by Torsten Wagner

On 2013-06-23, at 10:46 AM, Torsten Wagner <[hidden email]> wrote:
[deletia]
Well how many languages need a visual output to show the result?
I agree about editing, but find it very attractive to get visual debug capabilities within OpenSCAD. We have some already, but it could be extended. Some are easy to do e.g. only compile of marked lines, compile of single modules, etc. Some require a bit more work. E.g. coloring all output effected by the marked lines of code or jump to the code, after mouse selection of a mesh.
[rest deletia]

As it relates to visual output, the recently added '--render' switch to create image output could be leveraged in an IDE to generate temporary visual debug snaps:


Andrew.

--

"The future is already here.  It's just not very evenly distributed" -- William Gibson

Me: http://clothbot.com/wiki/




_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

kintel
Administrator
On the topic of the internal editor:

o I want to try integrating QScintilla (http://www.riverbankcomputing.com/software/qscintilla). If that works, we could potentially get a decent feature set for free.
o The IDE features I've had in mind is basic mapping between a line of code (or expression) and its visual representation. See https://github.com/openscad/openscad/wiki/GUI-Feedback-Loop-Helpers

 -Marius

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

G. Wade Johnson
In reply to this post by Jesse Guardiani
+1

On Sun, 23 Jun 2013 10:07:51 -0400
Jesse Guardiani <[hidden email]> wrote:

> I know this isn't the answer you want to hear, but 13 years as a
> professional software developer across multiple systems has taught me
> to trust only one IDE: vim + grep
>
> The learning curve is high, but vim installs on every machine known to
> mankind. You never have to be without it. And grep is one of the most
> versatile search systems I've ever used. A serious added benefit is
> that vim works just fine over SSH, so you can use it on remote
> machines.
>
> I catch a lot of flak for this policy from IDE junkies, but it works
> really, really well. I promise.
>
> I know it's not for everyone, but I just thought I would throw it out
> there as a possible alternative.
>


--
There's often more than one correct thing.
There's often more than one right thing.
There's often more than one obvious thing.            -- Larry Wall
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566
Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

marcosscriven
One idea I had was to use a node editor, a bit like this: http://idflood.github.io/ThreeNodes.js/

You could just drag primitives, translations, CSG ops etc, group them into modules, and hook them up.

I think it would sit well with OpenSCADs internal parsed representation. One could imagine editing OpenSCAD code both visually and in code, although to go backwards (changing a parameter on a visual node representation, and having it reflected in the code) would require quite a bit more work.

Reply | Threaded
Open this post in threaded view
|

Re: What about the IDE?

Triffid Hunter
In reply to this post by Jesse Guardiani
On 24 June 2013 00:07, Jesse Guardiani <[hidden email]> wrote:
> I know this isn't the answer you want to hear, but 13 years as a
> professional software developer across multiple systems has taught me to
> trust only one IDE: vim + grep

concur quite completely- I've been variously bitten in the ass by
every IDE I've tried to date, including some rather expensive ones.

I haven't taken the time to learn vim yet, but the principle still
applies- a good text editor, a terminal and a proper toolchain will
trump any IDE when things get "interesting"

As far as openscad goes, I think the only feature which would help
integration into an IDE is some way of persisting the caches so it
doesn't have to re-render from scratch for every tiny iteration.. I'd
be most likely to implement some sort of piped input mode where the
IDE can feed openscad some text and have it spit out a png, then
remain open awaiting the next block of text. This way, an IDE or other
application that integrates openscad would be able to keep the same
speed for minor revisions as current openscad native.

What becomes possible if openscad began to use this interface/renderer
split internally?
_______________________________________________
OpenSCAD mailing list
[hidden email]
http://rocklinux.net/mailman/listinfo/openscad
http://openscad.org - https://flattr.com/thing/121566