Recent

Author Topic: New FPC IDE  (Read 50348 times)

qdos

  • Full Member
  • ***
  • Posts: 112
New FPC IDE
« on: October 03, 2014, 11:07:25 pm »
As promised I have begun to adapt QTX, the second generation Smart Pascal IDE, to be usable with freepascal. This means that Lazarus will get company sometime in the future.

Short background: http://quartexpascal.wordpress.com/

At the moment the IDE is written solely in Delphi, but since it is made from off-the-shelf parts (synEdit being the most esoteric) it should compile nicely with freepascal. Hopefully FPC will adopt support for EMB generics sometime in the future.

Noteworthy differences
-- Single window IDE, "mono" like layout
-- packages are plain .zip files
-- Multiple projects can be open at the same time
-- Designer written from scratch in plain object pascal
-- Designer supports most mobile form-factors (+ typical delphi stuff)
-- IDE is language agnostic, syntax and rules are user-definable
-- Fast symbol management: DWScript is used as parser/tokenizer and building the AST (abstract symbol tree) is extremely quick, much faster than than the Delphi IDE.

With a little luck the IDE will ship with SMSC (smart mobile studio compiler) and FPC side by side, allowing you to target JS and native from the same IDE and from the same codebase.

The IDE is designed to be as object-oriented as possible, everything is neatly isolated in classes, heavy use of interfaces, exception and logging and localization included from scratch.

The IDE is also scriptable (DWScript), although RO script might take over the role of DWScript since that is more multi-platform. Scripting is a big thing, since you can author and register tools directly from the IDE itself; written in the IDE for the IDE.

The IDE picks up where Smart Mobile Studio ends. It is also considerably lighter and faster. I learned quite a few tricks writing the SMS IDE, and that knowledge has been invested in QTX.

RTL

Only parts of the LCL will be used, although the LCL can be used as it is (the IDE is user definable, even down to the syntax). The idea is to build a completely new type of pascal dialect, powered by FPC but with more in common with C# and Objective C. The syntax will remain the same, but the classes involved will be different.
« Last Edit: October 03, 2014, 11:12:21 pm by qdos »

sam707

  • Guest
Re: New FPC IDE
« Reply #1 on: October 04, 2014, 12:42:45 am »
I had a look over MSEIDE,

http://wiki.freepascal.org/MSEide_%26_MSEgui

http://www.msegui.org

I worked and I stil do maintnance on Qt with their QML dialect

I tried wxDev-C++

http://wxdsgn.sourceforge.net

also had to, by recent past, use visualstudio gas factory (lool)

BUT all IDE I tried, from the most popular to the less, including Code::blocks, eclipse even windev, the only 2 that are really a step forward (from years) are Delphi and Lazarus.

I don't want to discourage you tho... but I think the task you are trying to acomplish or achieve is 1) etremely difficult 2) won't find a large support

however, I wish you all the possible luck friendly
« Last Edit: October 04, 2014, 12:47:53 am by sam707 »

sam707

  • Guest
Re: New FPC IDE
« Reply #2 on: October 04, 2014, 12:49:04 am »
P.S. Delphi and Lazarus are a step forward all other products in the category (RAD/IDE) with a Large PLUS for Lazarus because it is 99% multiplatform

mse

  • Sr. Member
  • ****
  • Posts: 286
Re: New FPC IDE
« Reply #3 on: October 04, 2014, 08:15:10 am »
There actually are similarities to the MSEide+MSEgui and MSElang projects.
http://sourceforge.net/projects/mseide-msegui/
https://gitorious.org/mseide-msegui/pages/Mselang
Development of MSEide+MSEgui started in 1999 and has reached a really good level of stability and functionality. Commiting timeline of the last years is here:
https://www.openhub.net/p/11134
Maybe we can exchange ideas and solutions?
The MSEide+MSElang mailing list is here:
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Web interface:
http://www.mail-archive.com/mseide-msegui-talk@lists.sourceforge.net/
NNTP interface:
nntp://news.gmane.org/gmane.comp.ide.mseide.user

MSEide is GPL, MSEgui is LGPL with static linking exception, the MSElang compiler will be GPL too.
BTW, I think this thread belongs to "Third Party", here we soon will experience big opposition. ;-)



qdos

  • Full Member
  • ***
  • Posts: 112
Re: New FPC IDE
« Reply #4 on: October 04, 2014, 09:45:39 am »
Creating an IDE is not hard, but time consuming - with great focus on detail and shortcuts/tab index + navigation.

I like the MSEIDE project, it has a lot of advanced features -- but sadly the multi-window IDE + the layout of buttons and widgets is (for me) very messy to work with.
It is quite typical, many brilliant programmers forget how important look and feel is, so they create great systems - but the visual design of their product ensure that they dont get as popular as they should.

A GUI must look good, because people will spend hours, days and weeks inside it. Colors, space between buttons and frames, and general layout has a huge effect on the human-mind. Microsoft spent millions researching UI's before they created Windows. Apple did the same. A good looking GUI is "make or break" of a product.

MSEIDE would be just as popular as Lazarus, if not more -- but in my view it needs a complete visual re-design. We should not be afraid to learn from Visual Studio, MonoDevelop (my favorite) and other popular systems. MSEIDE is no doubt much more advanced than other IDE's, but i find it very hard to work in it for longer than 5 minutes. Nothing is where you expect it to be. But the features and code of the project is very good (!)

IDE building

One thing I learned after Smart Mobile Studio, was that the initial architecture for the IDE is alpha and omega when it comes to future work. So it's important to make a system which not just flexible, but also which avoids some problems via design. The codebase should be easy to expand 4-5 years down the line, and adding new features to the IDE should be a matter or registration.

Also, I think its important to keep things simple.
For instance, the base functionality in an IDE is more important than high-end, advanced or experimental features. Basic functionality being things like:

** Search and replace dialog(s)
** Search in files (all files, not just those opened)
** A more intuitive bookmark system (delphi's system is a dinosaur)
** Concurrent error messages, not just "an internal error in module ..."
** Proper logging to tab-indented textfiles regarding IDE activity
** Multi-line select
** Multi-line tab indentation (shift to toggle backwards)
** Easy and intuitive form/unit switching
** .. and more

This basic functionality should not just be "ok", it should be bloody fantastic and polished. Keyboard short-cuts should be "as you expect" and response time should be extremely fast. Also -- it should be tested and polished for laptops as well (meaning, all tab-stops, key-combo's should be rock solid and precise). Tooltips should also be informative, not just "click here to ..", but informative - preferably with a click option for entering the helpfile.

The same goes for the visual toolset:

** Designer should be pixel perfect
** Visual controls should be separated from non-visual components (Visual studio)
** Designer should include alternative layout methods (*1)
** Grouping of controls should work without a hitch
** Multi-select, delete, copy, paste etc. should work exactly like Delphi
** In-design editors (custom property inspectors) should be available from right-click menu

(*1): Delphi/Laz deploys only "absolute" positioning, but band/html5 like layout is easy to implement and add. It has a great advantage over Delphi's "align" system and ensures, much like QT that UI's look and feel the same on all platforms.

Speed-ups

** TMemoryDataset indexed lookup of syntax elements (pascal identifiers)
** LDEF persistence (save compiled units as LDEF structures, instead of re-parsing everything)
** Visual help forms! Loads of them (property inspectors)


« Last Edit: October 04, 2014, 10:17:04 am by qdos »

mse

  • Sr. Member
  • ****
  • Posts: 286
Re: New FPC IDE
« Reply #5 on: October 04, 2014, 10:18:14 am »
I like the MSEIDE project, it has a lot of advanced features -- but sadly the multi-window IDE + the layout of buttons and widgets leaves a lot to be desired.
You probably overlooked docking support of MSEide. Try 'View'-'Panel'-'New Panel'. There is also a docking area in the main window. MSEide 3.5 now supports docking of form designers too, see attachment.

jwdietrich

  • Hero Member
  • *****
  • Posts: 1274
    • formatio reticularis
Re: New FPC IDE
« Reply #6 on: October 04, 2014, 12:05:46 pm »
Your announcement is very interesting, but it leaves room for numerous open questions.

Will Quartex Pascal support multiple platforms, e.g. Mac OS X and Linux? Your remarks suggest that it might also support mobile operating systems like iOS and Android, but I can't find any specific information.

In your blog you wrote in a single paragraph that it will allow for transcoding to JavaScript, like Smart Mobile Studio. That is fine, but the possiblity to create native apps would be more interesting.

Overall, It would be more convincing if it were written in Free Pascal.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 4.2.0 | FPC 3.2.2 | PPC, Intel, ARM | macOS, Windows, Linux

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12706
  • FPC developer.
Re: New FPC IDE
« Reply #7 on: October 04, 2014, 12:52:09 pm »
Well, the IDE being an advanced LCL/VCL example source, would make it worthwhile alone.

qdos

  • Full Member
  • ***
  • Posts: 112
Re: New FPC IDE
« Reply #8 on: October 04, 2014, 03:06:40 pm »
Overall, It would be more convincing if it were written in Free Pascal.

I also wrote that it would compile fine under FPC, which then leads to the obvious -- that it can exist on all platforms which lazarus/fpc targets. Secondly, it's based on a Delphi codebase - why is that less convincing than one written in Lazarus/FPC? The code is the same..

When it comes to the web/HTML5 part, there is a lot of people who dont see the full potential before they try it.

For instance, consider this:

** Using Delphi/Laz you can write web-apps, typically apache/IIS extensions which are native
** You can build REST based services on top of that
** You can use third party packages, like mORMot to create SOAP/JSON services

Thats a lot of work and it's expensive because you have to rent a PC instance, as opposed to just simple hosting. Because running IIS/Apache modules is not "normal" in the eyes of hosting companies, who specialize on .net, nodeJS and php. But, when you can target JavaScript you can do the following:

** Write server using Smart Pascal, compile for nodeJS
** Write HTML5 client using Smart pascal, compile for browser
** Package client using Phonegap -- voila: iOS, Android and blackberry binaries in 2 minutes.
** Upload the whole shabam to any NodeJS host, no "native" super expensive server rent to pay!

If you want to re-cycle the nodeJS server for native FPC/Delphi clients, that is simple and super-easy. People need to catch up with how people are making apps today because it's very different from how we did things 8-10 years ago. Pascal is timeless, but the way we distribute our knowledge has changed. Especially with cloud/virtualization, which allows you to upload a whole vware-image to the cloud and host that. Long gone are the days of html hosting !

So why waste 2 months coding a JS based website, when you can spend 2 days writing it in a language you already know, and it runs in the browser and on every mobile platform out there -- native (thats what phonegap does)? By expanding our toolbox, object pascal can do some absolutely awesome tricks usually reserved for C# and (shrug) java. But pascal does it better, safer and faster!

But native is my primary concern, and as mentioned -- FPC will be the primary compiler, both for the IDE and by the IDE.

The focus here is really not so much the "what and who", but rather "how". QTX is a generic IDE, meaning that it can be used for anything. Want to build a "game pascal"? Go ahead, the IDE is ready. Have you made a GPU code compiler for your ASM projects? Oh you are missing an IDE -- well I have just the thing for you.

It's generic and will thus work with whatever you define for it. Language etc. is defined by INI files -- as are project entities (e.g Project -> Source, project -> resource file, project -> application unit).

Think of it this way: SynEdit is a generic code-editor. QTX is a generic code editor. You can use it for PHP and laugh in the face of EMB's "php builder", or for FPC as a lightweight alternative to lazarus (or delphi) -- heck, throw mingW in there and use it for C++ development if you like.

:)
« Last Edit: October 04, 2014, 03:28:10 pm by qdos »

sam707

  • Guest
Re: New FPC IDE
« Reply #9 on: October 04, 2014, 05:39:33 pm »
I did not tell that it was hard to make I did say you won't find a large support because there are many excellent IDE already.

the fact that microshot and opple spent millions and millions dollars into designs that my lil kids 6 years old can do in a morning isnt really a cool argument HAHAHAHAH Thanks!!!

I know about gamers and games programming. the best games spent about $1000 on UI their not as stupid as microshot LMAOOOOO OMG i am going to laugh a month long thank you again
« Last Edit: October 04, 2014, 05:42:36 pm by sam707 »

sam707

  • Guest
Re: New FPC IDE
« Reply #10 on: October 04, 2014, 05:47:56 pm »
the only futur thing coming that is gona impress me (and I feel it coming hehe) will be a true pure full 100% 3D IDE ;) worrking around touchscreens  :D
« Last Edit: October 04, 2014, 05:50:33 pm by sam707 »

Mocte

  • New Member
  • *
  • Posts: 21
Re: New FPC IDE
« Reply #11 on: October 04, 2014, 06:39:13 pm »
As promised I have begun to adapt QTX, the second generation Smart Pascal IDE, to be usable with freepascal. This means that Lazarus will get company sometime in the future.

This is really COOL!

Looking forward to downloads, please let us know when you have something to test.

qdos

  • Full Member
  • ***
  • Posts: 112
Re: New FPC IDE
« Reply #12 on: October 04, 2014, 07:37:58 pm »
I did not tell that it was hard to make I did say you won't find a large support because there are many excellent IDE already.

Absolutely, but you seem to miss the big picture.
Let us say for argument sake - that you suddenly find an interest in game programming, or multimedia production (i.e you want to make your own company and sell game creators or multimedia publisher software).

Included in both types of projects you need to present your own programming language, preferably written in FPC/Lazarus and also open-source, well written and solid on all 3 platforms (unix, windows, linux).

Dont you think an open-source IDE that you can instantly use as a basis would be nice?

So in my example, where you want to create "game pascal" or "multimedia pascal", the community pretty much have everything you need:
** SDL import units
** Remobjects pascal script and DWScript
** ... But *NO* IDE in sight.

None of the other IDE's are free to use in such a degree, and if they are - they typically suck (* smile *)

the fact that microshot and opple spent millions and millions dollars into designs that my lil kids 6 years old can do in a morning isnt really a cool argument HAHAHAHAH Thanks!!!

There is a reason to why Windows 95 was so successful. And it has greatly to do with the graphical presentation of Microsoft and the colors used. OS2/Warp was a much better OS -- but Microsoft won because they were smart enough to remember the details. And the devil is always in the details. So i dont care if it's not a cool argument, because it is a proven and smart argument
« Last Edit: October 04, 2014, 07:45:20 pm by qdos »

sam707

  • Guest
Re: New FPC IDE
« Reply #13 on: October 04, 2014, 08:43:03 pm »
HAHAHAHA your 'proven' argument is just BS! assuming the fact that Great People will always love Greek Art and dislike Picasso foolish idiot style. Common people will always follow Great people IN TIME ;) ALLWAYS. Want to make a SOLID Eternal concept? there is no 'few' ways , there is only one way! from centuries and centuries ;)

I was here when windows 95 came up (see my signature), what made it convince people to change from windowd 3.1 WASNT the UI, it was the 32 bits virtual flat memory access instead of the 16 bits realtime programming. meaning, essentially pointers from (0 to FFFFFF instead of paging access Ptr(FF0A:08) with all the arithmetic waste of cpu time)

don't assume people are idiots and will buy an icon just because its fun ;) better to assume people will buy an icon, even less smart, because UNDER the 'icon' there is a BIG engine! the women's way to look at cars colors before looking the speed of the car is a total mess if applyed to deep computers usage hahahhahahahahah...

I changed from win95 to XP64 because of the icon set? of course NOT! I changed because the kernel updated with preamptive multithreating (or an emulation of it)... Most of the people using computers dont really care about smileys and icons set THEY CARE about responsivity, speed, 3D!!! AND "NEW" concepts that are not hurting the "SOLID ETERNAL WAY"

- to please! DO NOT mix "simple' and 'childish' and spend millions and millions dollars on designers that my sons could beat on the kitchen floor with big pens and a morning AHAHAHAHAHAH NEVER!!!!
« Last Edit: October 04, 2014, 09:12:27 pm by sam707 »

Rails

  • Guest
Re: New FPC IDE
« Reply #14 on: October 04, 2014, 08:58:22 pm »
There is a reason to why Windows 95 was so successful. And it has greatly to do with the graphical presentation of Microsoft and the colors used. OS2/Warp was a much better OS -- but Microsoft won because they were smart enough to remember the details. And the devil is always in the details. So i dont care if it's not a cool argument, because it is a proven and smart argument

Windows 95 was a success because Microsoft held a monopolistic foothold on the PC OS market and had for some time, not because of any technical reason. It did this by requiring OEMs to include Windows if they wanted to ship with DOS. This practice predated Windows 95.

Considering that Intel PC clones were virtually unsaleable without DOS during that time frame, made it a certainty that ordinary consumers got a machine that booted up into Windows and nothing else. Microsoft also gave rebates to volume sellers and required that IE be included and installed as the default browser, blocking out smaller corporations and startups. Because IBM was already under court order due to earlier anticompetitive actions, even Big Blue could not compete on even terms with the Microsoft Monopoly.

Eventually, the US and European governments sued Microsoft for its actions. Unfortunately, the US DOJ was ill prepared to deal with a market that moved as fast as personal computing and blew it by focusing on the bundling of IE with a plodding case when they should have focused on the totality of Microsoft's anticompetitive actions. They were happy with a symbolic victory of the pseudo unbundling of Windows and IE when they should have settled for nothing less than the breakup of Microsoft. 

That's how Microsoft won. All the rest of us lost.




« Last Edit: October 04, 2014, 09:11:56 pm by Rails »

 

TinyPortal © 2005-2018