Domain: interakt.ro
Stories and comments across the archive that link to interakt.ro.
Comments · 27
-
I thought so .. changed my site from .ro to .com
I always suspected this... When we've started our business, we used the domain www.interakt.ro (we're from Romania). However, because we sell software tools mostly to the USA and Western Europe, we've decided to go to www.interaktonline.com.
Instantly, our ranking went from number one (for "Dreamweaver Php" for example, we were number one there instead of Macromedia itself a long time), to page 10.
Now, we're working hard to promote our site, we have links all over the place, but still our site don't get up again to page 1 (search for "dreamweaver extensions" - we have to pay to get our site in the first position). I even thought that they do this on purpose for us to continue to pay on Google Ads :D
Probably they say it too in the patent, but the best ranking tool is to use the right "title" tag in your pages. It's invaluable how well this scores as compared to the page content.
Alexandru -
LIB = HTML; It's the Executable
The LIB format isn't really proprietary. In short, it's your HTML page with a different file extension and a few additional HTML comment blocks. The only reason it's
.lib is so you don't treat it as a HTML page since it's not a complete HTML page.
The LIB file is text that's copy and pasted into the parent document. That is, if you were to delete the LIB file, you still have all the code in the parent files. What Dreamweaver does with the LIB files is recognize that any code changed within the LIB file must be changed in the parent files that use that code. However, this is the Dreamweaver executable that's detecting and making the changes. This isn't a server technology. This isn't anything special in the files (outside of standard HTML comment blocks), just how your copy of Dreamweaver is using a form of find/replace function on your site.
As to open-source alternatives, you may have read previously about OSS lack of usability. This is why there aren't many good OSS editors out there. Oh there are editors, but they are mostly glorified text editors and some will display HTML pages with a WYSIWYG interface. But what makes Dreamweaver special are the advanced find/replace functions like LIB files. To my knowledge, nothing in OSS offers any where close to this functionality. You can code a site, even dynamic sites, with just a text editor and a FTP client. However, tools like Dreamweaver add functionality that makes the development process easier. You can make templates in text edit. But when you make a change to the template, text edit won't make the changes to the 200 other files that refer to that template. Dreamweaver will.
I use Dreamweaver (with the GPL extention PHAkt) because it gets my job done faster. If a tool came out that was better or even comparable to Dreamweaver, I'd go for it. But, alas, there is no such a tool. -
Re:PHP software development market - USD 5.6 billi
Potentially that's a massive market to anyone selling PHP related tools (and their aren't many). Of course that's based on the questionee's estimate.
Actually it seems that the PHP developers are spending around USD 500 for tools, that means that the market for PHP development tools is actually 38 millions USD, and this is a much reasonable estimate.
The 5.6 billion dollars market is our initial figure, supported by the people that filles our survey
Alexandru -
Re:php in a microsoft shop?
-
Re:The code is the data!Hi,
Language: sure Python is better choice for a readable code and OOP. In my personal opinion, Python is the best among imperative languages. I love using FP style in Python, getting the smaller code doing more and still very expressively
You will find our Krysalis taglibs extremely interesting for code reuse - as they allow you to define an XML dictionary that is compiled into code later on.Templates: Even DTML in Zope beats PHP. As for ZPT - after learning it you cannot go back to PHP. Never.
I am not familiar with your template markups, but actually why invest new markup languages when you could use the template language of all platforms - XSL - Krysalis uses XSL and we are very satisfied that people from other platforms can use Krysalis without having to learn new template languages ..Namespaces: ZPT has a very excelent design and implementation of namespaces. All accordingly to W3C standards and traditions.
We support XML namespaces in our taglibs in KrysalisContent management: in PHP you still have to write it (or find it, or buy it). With Zope you have already got it, working, convinient, secure and well designed. CMF with Plone improve it even more bringing in workflow management and collaboration.
Anyway, the most interesting part is that we have an already open CMS built upon Krysalis - the Komplete Lite CMS. Komplete Lite was designed for Krysalis and I can also say that Krysalis advanced because of Komplete requirements. We have tried to make Komplete a very adaptive CMS, that allows us to use most of the nice Krysalis features - I think all of them:
- it uses taglibs everywhere for code reuse
- it's pages are designed as aggregated pipelines with cache support for performance and for site section independence
- it is based completely on the separation of application logic from the presentation layer - so changing the presentation layer can be made with a simple click
- it already includes a very powerful structure manager
- has various page types (to be rendered in the central site section) and can easily include new page types
- it can import RSS streams from other sites
- has support for various types of nuggets (not as many as nuke, but we are welcoming contributions)
- includes a visual HTML editor (KTML lite)
- and many other features.
Komplete can be found here
Alexandru -
Re:The code is the data!Hi,
Language: sure Python is better choice for a readable code and OOP. In my personal opinion, Python is the best among imperative languages. I love using FP style in Python, getting the smaller code doing more and still very expressively
You will find our Krysalis taglibs extremely interesting for code reuse - as they allow you to define an XML dictionary that is compiled into code later on.Templates: Even DTML in Zope beats PHP. As for ZPT - after learning it you cannot go back to PHP. Never.
I am not familiar with your template markups, but actually why invest new markup languages when you could use the template language of all platforms - XSL - Krysalis uses XSL and we are very satisfied that people from other platforms can use Krysalis without having to learn new template languages ..Namespaces: ZPT has a very excelent design and implementation of namespaces. All accordingly to W3C standards and traditions.
We support XML namespaces in our taglibs in KrysalisContent management: in PHP you still have to write it (or find it, or buy it). With Zope you have already got it, working, convinient, secure and well designed. CMF with Plone improve it even more bringing in workflow management and collaboration.
Anyway, the most interesting part is that we have an already open CMS built upon Krysalis - the Komplete Lite CMS. Komplete Lite was designed for Krysalis and I can also say that Krysalis advanced because of Komplete requirements. We have tried to make Komplete a very adaptive CMS, that allows us to use most of the nice Krysalis features - I think all of them:
- it uses taglibs everywhere for code reuse
- it's pages are designed as aggregated pipelines with cache support for performance and for site section independence
- it is based completely on the separation of application logic from the presentation layer - so changing the presentation layer can be made with a simple click
- it already includes a very powerful structure manager
- has various page types (to be rendered in the central site section) and can easily include new page types
- it can import RSS streams from other sites
- has support for various types of nuggets (not as many as nuke, but we are welcoming contributions)
- includes a visual HTML editor (KTML lite)
- and many other features.
Komplete can be found here
Alexandru -
Re:The code is the data!
One tip of the typing front, if you want a comparison which looks at value AND type, use === rather than == phpMyAdmin is one of the first generation of PHP apps and I agree is full of classic hacks but it works perfectly for it's intended purpose. If you want to put together a well designed PHP app, you really need to pick a one of the available PHP frameworks, unless you want to spent alot of time re-inventing wheels. eZ Publish is worth examining as is Interakts Krysalis (a port of Apache's Cocoon to PHP) although both "tie" you into quite deeply to their way of doing things. On the more "lightweight" framework front, it's worth investigating ISMO or WACT. But if you're really dying, try this: http://pear.php.net/python: "This extension allows the Python interpreter to be embedded inside of PHP, allowing for the instantiate and manipulation of Python objects from within PHP."
-
Re:AxKit, XML based sites even worse
It seems that you are pretty angry at the XML/XSL approach - and I must admit that the initial learning curse is very steep - we had the same problems when we've met Cocoon2 2 years ago and didn't have a clue on how to handle it.
However (we have advanced a lot in the meanwhile and even created our own XML/XSL publishing engine particularized to PHP), we have reached a point where the architectural beauty of the platform really pays off.
Check our documentation for Krysalis, take a look at our IDE and you will see that this could be pretty simple to work in this XML/XSL approach - Krysalis home
Alexandru -
Re:PHP is ok but...
As for maintainability,
I have seen huge cumbersome application servers built around PHP that are a nightmare to maintain without having intimate familiarity with the code of the application server
We have met the same problem indeed with PHP application, caused by the mix of application logic and presentation layer... PHP is good and very easy to setup and create a site, but maintaining a large PHP application can be *nightmare*.
As we've met the same problems, we try to offer a free platform for a PHP MVC platform - Krysalis. Krysalis - it's a platform (inspired from Cocoon2) to allow content publishing using XML as the data representation mode and XSL to add the presentation layer on it. It also includes a MVC (Model View Controller) implementation to allow you to fit how web requests are served from your site.
Krysalis includes some features for authentication, validation and dynamic XML generation, and also includes a lot of (what our marketing department likes to call) "enterprise level" code techniques - that is taglib code reuse (in the application logic and presentation layer), etc.
As far as I know, we have closed to Struts in terms of taglibs and controller definitions, and we are continuing this way
Another interesting features integrated in the Krysalis core are the caching mechanisms. Being a pretty abstract architecture where flexibility is a must and everything is defined using XML, we needed a very powerful way to transform those XML definitions into pure executable PHP code. We have started with PEAR cache but it was not up to the task, so we've come with our own cache implementation, that keeps the generated PHP code on the disk in a require (this way the generated file can be also compiled when using a PHP Accelerator).
We have very large applications built on Krysalis (CMS systems or Intranets), and they are very easy to maintain even if they were hard to architect and create - as they use for 10 installation a single core and the differences in the applications are handled through smart Controller techniques - so we have a very powerful and usable way of separating the application logic from the presentation layer.
Alexandru -
Re:Hack-away
I know that you're somewhat joking, but I would have liked the market share questions from InterAKT to have included not just
.NET, J2EE, or ColdFusion, but have also included other languages like Perl and Python (although Python is indeed the base language for Zope).
We have indeed included comparision with Perl and Python (Zope) here
It's in the "Why you've lost" section of the survey, as seen through the eyes of the PHP developer :)
Alexandru -
Re:PHP: Capable != Appropriate
"but inlining code and presentation is really not the right way to be encouraging new folks to programming to code..."
You'd better tell that to the guys working on mod_python cause they've already introduced PyHP - Python Hypertext Preprocessor. And while you're at it, better tell the guys a PERL::MASON of the error of their ways.
"PHP teaches programmers bad habits like excessive use of global namespaces, and generally is accomplished with poor editing style becuase it is inlined with HTML, which has different needs for editing/indentation/etc."
PHP doesn't teach anything. If you choose to use globals that's your problem. You'll find if you look most PHP community sites advocate avoiding the use of GLOBALs.
Also as to "inlined with HTML", PHP originally was a templating language. Zope's TAL is simply another programming language (designed specifically for templates) and it's even been ported to PHP PHPTal. As template languages go, TAL is OK but if you're going to have a declarative template syntax (as opposed to an imperitive syntax like PHP in HTML or Mason) you'd be better off with one which gives you some real power, like ASP.NET or Java Server Faces.
Suggest reading up on the TemplateView. That link is a particularily in depth study of templates.
"PHP does not work well for team programming, and Python does."
Yes Python is a better designed language but, based on your arguments, there's no particular advantage it has for teams. Zope is framework built with Python but you'll find many excellent frameworks written in PHP which also have some form of templating e.g. eZ publish or Krysalis (based on Apache Cocoon).
The usual argument for "what works for teams" is things like "private, protected, public". Both PHP and Python lack this (although PHP5 is a different story) so the emphasis is on developer self discipline e.g. __myprivatevar or $__myprivatevar
When to use what?
Use Perl for command line and batch processing
Use Python for desktop apps
Use PHP for web based apps. -
Re:Why WOULD you use classes and objects?Hi, I have seen your site, and it seems that Komplete Lite could be able to help you, as it already has:
- XSL/XSL core - generate dynamic XML trees from database or use your own trees
- Separation of concerns (MVC - from Krysalis
- Powerful content management (manage structure and content visually)
- Skins (templates) - just write your own XSLs and you have a new look and feel for your site.
- RSS automatic generation and importing
- Nuggets
- Lots of other goodies
-
Re:Why WOULD you use classes and objects?Hi, I have seen your site, and it seems that Komplete Lite could be able to help you, as it already has:
- XSL/XSL core - generate dynamic XML trees from database or use your own trees
- Separation of concerns (MVC - from Krysalis
- Powerful content management (manage structure and content visually)
- Skins (templates) - just write your own XSLs and you have a new look and feel for your site.
- RSS automatic generation and importing
- Nuggets
- Lots of other goodies
-
Re:PHP frameworks
There is also Krysalis for XML/XSL application development (approach to PHP/MVC with the cocoon approach)
And KompleteLite as a GPL CMS - Komplete Lite
We have succesfully created very powerful applications that are *very* easy to maintaing thanks to the separation of concerns (www.mcti.ro, others) -
Re:PHP frameworks
There is also Krysalis for XML/XSL application development (approach to PHP/MVC with the cocoon approach)
And KompleteLite as a GPL CMS - Komplete Lite
We have succesfully created very powerful applications that are *very* easy to maintaing thanks to the separation of concerns (www.mcti.ro, others) -
Re:Waiting for PHP users to wisen up
Hey,
PHP libraries for emulating misses in the database already exist (even we have a commercial product called ImpAKT (extension to Dreamweaver MX) that knows how to cascade or restrict access from PHP ImpAKT 2 tNG homepage.
However, this does not mean that those issues shouldn't be done in the database. I mean, I could write my own cascaded deletes, but how will those interfere with someone adding some other records in the database "in the same time"? Transactions imply that all complex data storage application logic will be included in the database, and not emulated from class libraries.
Anyway, we get a good usage of MySQL as it is, just there's a lot of room for improvement. -
Waiting for maturity
We are also using MySQL for many web projects, but to create a complex CMS the future features in MySQL (that also exist in other current database systems - like postgreSQL and probably others) are needed.
We have initially created Komplete - http://komplete.interakt.ro/ only for PostgreSQL, and our users attitude indicated us that MySQL should have been supported. So we are releasing now the Komplete Lite version (GPL), for MySQL - but it's a real pain to simulate subselects, real unions (emulated with temporary tables now), cascaded deletes and stored procedures.
The speed is quite similar, but PostgreSQL is still much better for complex web applications. -
Re:Static page generators
Hi,
I'am a great fan of Joel (fogcreek), but I'm not so much into the static CMS thing.
Database based CMS are much interesting from many points of view, and allow you to do things that are impossible in the static approach (like personalized homepage, online editing, forums, etc).
There is indeed a performance penalty, but with some skills it can be resolved. For example we (InterAKT), have developed the Romanian Misistry of Communications and IT using a complete database driven approach, together with XML/XSL generation. The system flexibility is that high, that we can reproduce this for any other site in a matter of days (and we're talking about a real complex CMS, check www.mcti.ro for details (all the site structure and content is database driven - menus, pages, article lists, polls, homepage layout, nugget list). The performance wasn't that high, a page being server in about 200-300 milis.
So we were forced to create this cache approach, that was implemented only once, and which allowed us to serve pages in 12-20 milis. The cache compiles the URL parameters and if caches the output of those URL's on disk. When a new request with the same parameters is made, the premade file is served. (OOP zealots might call this "lazy instantiation" of the static version:). All this with the flexibility maintained. I doubt you can do this with the static page generators....
If you want to find more about the technology, check : http://www.interakt.ro/
Alexandru -
They might be stoned, our is for free
We have a very performant product, called Menus (not a very clever name) version that is GPL (that means you can use it anywhere on your websites, and it supports Konqueror, too. It also suport MSIE, NEtscape and Mozilla. It is engineered with DOM in mind and has a great flexibility.
Menus 2.1 (that will be released shortly) will also incorporates Netscape 6.2 support and a dynamic Javascript tree menu.
Please visit : http://www.interakt.ro/products/Menus for more details.
--
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ -
They might be stoned, our is for free
We have a very performant product, called Menus (not a very clever name) version that is GPL (that means you can use it anywhere on your websites, and it supports Konqueror, too. It also suport MSIE, NEtscape and Mozilla. It is engineered with DOM in mind and has a great flexibility.
Menus 2.1 (that will be released shortly) will also incorporates Netscape 6.2 support and a dynamic Javascript tree menu.
Please visit : http://www.interakt.ro/products/Menus for more details.
--
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ -
Poitless comparison - the problem is different
I am wondering if such a comparison can bring a real relevance for the PHP development community evolution to an improved level. I don't think that small nifty features will make PHP development a better choice for the real web developers, that need productivity and a framework for application development.
During the last 3 years, all the editors have included nice and standard functionalities like: multi project support, code highlighting, autocompletion(even for your own functions), integrated debugger, integrated help, etc.
But when it comes to programming dynamic websites, the tasks to do are pretty repetitive and boring and real programming is usually not needed. Usually you connect to a database, get some fields from a query and put them in a HTML table (repeating the procedure for each row or not). Usually you need to see the HTML output and to write some HTML code (preferable in a WYSIWYG editor).
None of the current IDEs allow you to do this (except for Macromedia UD, which does not support PHP natively, but using our GPL extension PHAkt). Programming web application using one of them is a very complicated solution to the problem. You have to reinvent the wheel a zillion times in creating a lot of "form validation", "user authentication", "repeated regions" etc. code blocks, that are very particular, hard to use by others and unmaintanable.
<paradigm shift>What we need is a powerful framework for developing PHP applications, something like
.NET, a platform that will allow us to compete with the ubiquitous .NET and J2EE.</paradigm shift> (I love using this paradigm shift thing:). It has to support SOAP and the rest of the current communication protocols (UDDI, ebXML, etc) and has to provide some "already written and tested code blocks" for reuse.That's why we are developing and have released Krysalis - as an Open Source project. Krysalis aims to become what Cocoon is for Java. (if you don't know Cocoon, check http://xml.apache.org). A platform for writing web applications with a complete separation between the data, the application logic and the presentation layer. Of course, to do this, the most hyped and elegant way is by using XML and XSLT. The process is very simple, we use a sitemap that describes the possible requests to the server, some pipelines where we describes the succession of data gathering and transformations and then, for each request to the server (the server is Apache with PHP support) we execute the corresponding pipeline. That is, read the PXP file ( an XML that contains the application logic), execute it and retrieve the complete XML tree, then read the XLST files associated with the request and process the original XML tree with them. After all the XSLT processing is done, we print the output to the browser.(the output can be XHML or PDF or anything else if you provide a Serializer that will do the conversion from the last XML tree to the needed format).
This way, might a site became a little harder to write, but maintaining it will be a piece of cake. The current alternation between application logic and HTML tags (presentation) is a real pain in the ass when you need multiple presentations (like HTML / PDF, like English version and German version, etc). Each time you make a modification in the application logic, you have to search all the places where that application logic block is used and correct them, too. Etc.
How can Krysalis help me create my sites faster? Using taglibs. Taglibs are already written code sections that are included and parametrized in your files and which are converted to real PHP code at the execution time. We have already implemented taglibs for the SQL connection, form variables, authentication.
Technically, Krysalis is also based on ADODB (php.weblogs.com/ADODB), and the PHP problems with way too many and different database connectivity APIs is solved.
To get back to the current topic, what Krysalis need right now is an IDE. We are working on one (Krysal IDE), an editor that will allow you to develop Dynamic Websites with the same ease as you develop Web Services. To reach both the Windows and Linux community, we'll implement it Java (we know. Maybe it will be slower, but at the current hardware prices I don't think this makes a real difference). The rendering engine will be Mozilla (probably) as in the next 3 month it will be mature enough (we think). More, the Lite version will be also open source, so everyone will be able to use and improve it.
Take a look at a current pre-alpha screenshot of Krysal IDE at http://www.interakt.ro/products/Krysalis/. The XML/XSLT part is not yet implemented, we have done only the dynamic XML generation and preview with a preliminary support for taglibs.
That's what we think on PHP development. I would like to know how the slashdotters view this approach.
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ :: Engineering Your Desires
+401 411 2610 -
Poitless comparison - the problem is different
I am wondering if such a comparison can bring a real relevance for the PHP development community evolution to an improved level. I don't think that small nifty features will make PHP development a better choice for the real web developers, that need productivity and a framework for application development.
During the last 3 years, all the editors have included nice and standard functionalities like: multi project support, code highlighting, autocompletion(even for your own functions), integrated debugger, integrated help, etc.
But when it comes to programming dynamic websites, the tasks to do are pretty repetitive and boring and real programming is usually not needed. Usually you connect to a database, get some fields from a query and put them in a HTML table (repeating the procedure for each row or not). Usually you need to see the HTML output and to write some HTML code (preferable in a WYSIWYG editor).
None of the current IDEs allow you to do this (except for Macromedia UD, which does not support PHP natively, but using our GPL extension PHAkt). Programming web application using one of them is a very complicated solution to the problem. You have to reinvent the wheel a zillion times in creating a lot of "form validation", "user authentication", "repeated regions" etc. code blocks, that are very particular, hard to use by others and unmaintanable.
<paradigm shift>What we need is a powerful framework for developing PHP applications, something like
.NET, a platform that will allow us to compete with the ubiquitous .NET and J2EE.</paradigm shift> (I love using this paradigm shift thing:). It has to support SOAP and the rest of the current communication protocols (UDDI, ebXML, etc) and has to provide some "already written and tested code blocks" for reuse.That's why we are developing and have released Krysalis - as an Open Source project. Krysalis aims to become what Cocoon is for Java. (if you don't know Cocoon, check http://xml.apache.org). A platform for writing web applications with a complete separation between the data, the application logic and the presentation layer. Of course, to do this, the most hyped and elegant way is by using XML and XSLT. The process is very simple, we use a sitemap that describes the possible requests to the server, some pipelines where we describes the succession of data gathering and transformations and then, for each request to the server (the server is Apache with PHP support) we execute the corresponding pipeline. That is, read the PXP file ( an XML that contains the application logic), execute it and retrieve the complete XML tree, then read the XLST files associated with the request and process the original XML tree with them. After all the XSLT processing is done, we print the output to the browser.(the output can be XHML or PDF or anything else if you provide a Serializer that will do the conversion from the last XML tree to the needed format).
This way, might a site became a little harder to write, but maintaining it will be a piece of cake. The current alternation between application logic and HTML tags (presentation) is a real pain in the ass when you need multiple presentations (like HTML / PDF, like English version and German version, etc). Each time you make a modification in the application logic, you have to search all the places where that application logic block is used and correct them, too. Etc.
How can Krysalis help me create my sites faster? Using taglibs. Taglibs are already written code sections that are included and parametrized in your files and which are converted to real PHP code at the execution time. We have already implemented taglibs for the SQL connection, form variables, authentication.
Technically, Krysalis is also based on ADODB (php.weblogs.com/ADODB), and the PHP problems with way too many and different database connectivity APIs is solved.
To get back to the current topic, what Krysalis need right now is an IDE. We are working on one (Krysal IDE), an editor that will allow you to develop Dynamic Websites with the same ease as you develop Web Services. To reach both the Windows and Linux community, we'll implement it Java (we know. Maybe it will be slower, but at the current hardware prices I don't think this makes a real difference). The rendering engine will be Mozilla (probably) as in the next 3 month it will be mature enough (we think). More, the Lite version will be also open source, so everyone will be able to use and improve it.
Take a look at a current pre-alpha screenshot of Krysal IDE at http://www.interakt.ro/products/Krysalis/. The XML/XSLT part is not yet implemented, we have done only the dynamic XML generation and preview with a preliminary support for taglibs.
That's what we think on PHP development. I would like to know how the slashdotters view this approach.
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ :: Engineering Your Desires
+401 411 2610 -
Poitless comparison - the problem is different
I am wondering if such a comparison can bring a real relevance for the PHP development community evolution to an improved level. I don't think that small nifty features will make PHP development a better choice for the real web developers, that need productivity and a framework for application development.
During the last 3 years, all the editors have included nice and standard functionalities like: multi project support, code highlighting, autocompletion(even for your own functions), integrated debugger, integrated help, etc.
But when it comes to programming dynamic websites, the tasks to do are pretty repetitive and boring and real programming is usually not needed. Usually you connect to a database, get some fields from a query and put them in a HTML table (repeating the procedure for each row or not). Usually you need to see the HTML output and to write some HTML code (preferable in a WYSIWYG editor).
None of the current IDEs allow you to do this (except for Macromedia UD, which does not support PHP natively, but using our GPL extension PHAkt). Programming web application using one of them is a very complicated solution to the problem. You have to reinvent the wheel a zillion times in creating a lot of "form validation", "user authentication", "repeated regions" etc. code blocks, that are very particular, hard to use by others and unmaintanable.
<paradigm shift>What we need is a powerful framework for developing PHP applications, something like
.NET, a platform that will allow us to compete with the ubiquitous .NET and J2EE.</paradigm shift> (I love using this paradigm shift thing:). It has to support SOAP and the rest of the current communication protocols (UDDI, ebXML, etc) and has to provide some "already written and tested code blocks" for reuse.That's why we are developing and have released Krysalis - as an Open Source project. Krysalis aims to become what Cocoon is for Java. (if you don't know Cocoon, check http://xml.apache.org). A platform for writing web applications with a complete separation between the data, the application logic and the presentation layer. Of course, to do this, the most hyped and elegant way is by using XML and XSLT. The process is very simple, we use a sitemap that describes the possible requests to the server, some pipelines where we describes the succession of data gathering and transformations and then, for each request to the server (the server is Apache with PHP support) we execute the corresponding pipeline. That is, read the PXP file ( an XML that contains the application logic), execute it and retrieve the complete XML tree, then read the XLST files associated with the request and process the original XML tree with them. After all the XSLT processing is done, we print the output to the browser.(the output can be XHML or PDF or anything else if you provide a Serializer that will do the conversion from the last XML tree to the needed format).
This way, might a site became a little harder to write, but maintaining it will be a piece of cake. The current alternation between application logic and HTML tags (presentation) is a real pain in the ass when you need multiple presentations (like HTML / PDF, like English version and German version, etc). Each time you make a modification in the application logic, you have to search all the places where that application logic block is used and correct them, too. Etc.
How can Krysalis help me create my sites faster? Using taglibs. Taglibs are already written code sections that are included and parametrized in your files and which are converted to real PHP code at the execution time. We have already implemented taglibs for the SQL connection, form variables, authentication.
Technically, Krysalis is also based on ADODB (php.weblogs.com/ADODB), and the PHP problems with way too many and different database connectivity APIs is solved.
To get back to the current topic, what Krysalis need right now is an IDE. We are working on one (Krysal IDE), an editor that will allow you to develop Dynamic Websites with the same ease as you develop Web Services. To reach both the Windows and Linux community, we'll implement it Java (we know. Maybe it will be slower, but at the current hardware prices I don't think this makes a real difference). The rendering engine will be Mozilla (probably) as in the next 3 month it will be mature enough (we think). More, the Lite version will be also open source, so everyone will be able to use and improve it.
Take a look at a current pre-alpha screenshot of Krysal IDE at http://www.interakt.ro/products/Krysalis/. The XML/XSLT part is not yet implemented, we have done only the dynamic XML generation and preview with a preliminary support for taglibs.
That's what we think on PHP development. I would like to know how the slashdotters view this approach.
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ :: Engineering Your Desires
+401 411 2610 -
Poitless comparison - the problem is different
I am wondering if such a comparison can bring a real relevance for the PHP development community evolution to an improved level. I don't think that small nifty features will make PHP development a better choice for the real web developers, that need productivity and a framework for application development.
During the last 3 years, all the editors have included nice and standard functionalities like: multi project support, code highlighting, autocompletion(even for your own functions), integrated debugger, integrated help, etc.
But when it comes to programming dynamic websites, the tasks to do are pretty repetitive and boring and real programming is usually not needed. Usually you connect to a database, get some fields from a query and put them in a HTML table (repeating the procedure for each row or not). Usually you need to see the HTML output and to write some HTML code (preferable in a WYSIWYG editor).
None of the current IDEs allow you to do this (except for Macromedia UD, which does not support PHP natively, but using our GPL extension PHAkt). Programming web application using one of them is a very complicated solution to the problem. You have to reinvent the wheel a zillion times in creating a lot of "form validation", "user authentication", "repeated regions" etc. code blocks, that are very particular, hard to use by others and unmaintanable.
<paradigm shift>What we need is a powerful framework for developing PHP applications, something like
.NET, a platform that will allow us to compete with the ubiquitous .NET and J2EE.</paradigm shift> (I love using this paradigm shift thing:). It has to support SOAP and the rest of the current communication protocols (UDDI, ebXML, etc) and has to provide some "already written and tested code blocks" for reuse.That's why we are developing and have released Krysalis - as an Open Source project. Krysalis aims to become what Cocoon is for Java. (if you don't know Cocoon, check http://xml.apache.org). A platform for writing web applications with a complete separation between the data, the application logic and the presentation layer. Of course, to do this, the most hyped and elegant way is by using XML and XSLT. The process is very simple, we use a sitemap that describes the possible requests to the server, some pipelines where we describes the succession of data gathering and transformations and then, for each request to the server (the server is Apache with PHP support) we execute the corresponding pipeline. That is, read the PXP file ( an XML that contains the application logic), execute it and retrieve the complete XML tree, then read the XLST files associated with the request and process the original XML tree with them. After all the XSLT processing is done, we print the output to the browser.(the output can be XHML or PDF or anything else if you provide a Serializer that will do the conversion from the last XML tree to the needed format).
This way, might a site became a little harder to write, but maintaining it will be a piece of cake. The current alternation between application logic and HTML tags (presentation) is a real pain in the ass when you need multiple presentations (like HTML / PDF, like English version and German version, etc). Each time you make a modification in the application logic, you have to search all the places where that application logic block is used and correct them, too. Etc.
How can Krysalis help me create my sites faster? Using taglibs. Taglibs are already written code sections that are included and parametrized in your files and which are converted to real PHP code at the execution time. We have already implemented taglibs for the SQL connection, form variables, authentication.
Technically, Krysalis is also based on ADODB (php.weblogs.com/ADODB), and the PHP problems with way too many and different database connectivity APIs is solved.
To get back to the current topic, what Krysalis need right now is an IDE. We are working on one (Krysal IDE), an editor that will allow you to develop Dynamic Websites with the same ease as you develop Web Services. To reach both the Windows and Linux community, we'll implement it Java (we know. Maybe it will be slower, but at the current hardware prices I don't think this makes a real difference). The rendering engine will be Mozilla (probably) as in the next 3 month it will be mature enough (we think). More, the Lite version will be also open source, so everyone will be able to use and improve it.
Take a look at a current pre-alpha screenshot of Krysal IDE at http://www.interakt.ro/products/Krysalis/. The XML/XSLT part is not yet implemented, we have done only the dynamic XML generation and preview with a preliminary support for taglibs.
That's what we think on PHP development. I would like to know how the slashdotters view this approach.
Alexandru COSTIN
Product Manager
http://www.interakt.ro/ :: Engineering Your Desires
+401 411 2610 -
Re:My IDE
Thanks for the appreciations. We were VIM guys ourselves (we have even created a (yet another) made with VIM logo) until we have started InterAKT and needed some real productivity. Using our tools that generate code and let you parametrize it boosted our productivity and allowed us to deliver quality software development services.
We are willing to continue our work on PHAkt & ImpAKT and we are working right now on a 2.0 version of both products.
I don't think you'll see a Linux version of Ultradev, and the reasons are very simple. The HTML editor UD uses is a customized version of the M$ DHTML control. Porting it to Linux it's pretty impossible as I think it's based on MFC.
Alexandru
Product Manager
http://www.interakt.ro/ :: Engineering Your Desires
+401 411 2610 -
My IDE
I own Nusphere's IDE and it's a real pain to get working on a different box than the one you develop on. I've yet to get the debugger wroking on it. The other problem is the editor only runs on Winshit. Can't wait for a Linux version of the editor. Since I need to run a M$ OS, I've installed Macromedia UltraDev and added the open source Phakt PHP extension. Very nice RAD GUI dev based mostly on ADO. I was able to develop a site based on 5 MySQL tables, including joins, relatively simply. Much faster than coding everything by hand. In fact, I intend to buy the commercial version, ImpAKT when I get home. Again, I REALLY wish Macromedia would get their shit together and create a Linux port of Ultradev. I would hock one of my guitars for that!
-
My IDE
I own Nusphere's IDE and it's a real pain to get working on a different box than the one you develop on. I've yet to get the debugger wroking on it. The other problem is the editor only runs on Winshit. Can't wait for a Linux version of the editor. Since I need to run a M$ OS, I've installed Macromedia UltraDev and added the open source Phakt PHP extension. Very nice RAD GUI dev based mostly on ADO. I was able to develop a site based on 5 MySQL tables, including joins, relatively simply. Much faster than coding everything by hand. In fact, I intend to buy the commercial version, ImpAKT when I get home. Again, I REALLY wish Macromedia would get their shit together and create a Linux port of Ultradev. I would hock one of my guitars for that!