 |
Green grass project looking for innovative technologies
Posted by felipegaucho on June 13, 2007 at 05:07 AM | Comments (11)
The core of the Footprint Project is alive, and during the next few days I will be organizing
a minimum documentation in order to publish the first stable release. The current snapshot is
able to generate and sign PDF documents through a concise code - a very good beginning considering
the scarce resources of the project. Now it is time to check the outlook and to start discussing
the more advanced and valuable features of the project, as follows:
- To generate a web-service for validating the generated certificates.
- To generate a client to the web-service
- a web-application
- a desktop or rich-client application
I am here playing this fortune teller role in order to guess the chances of the new technologies
to survive along the time. My crystal ball is displaying a mix of old labels and novelties like jMaki, JavaFX,
Netbeans, Glassfish or EJB3 for example. Some of these technologies are already materialized in
the software market, other ones are just whispering good features, prospective ideas waiting a chance
to be adopted.
We all play these mind games some times, and we know every Open Source project based on pure
collaboration - no financial support and very small teams -
need some kind of special attraction to be noticed by the Java community. So, our task now is to
check the horizon and bet on the winners.
The early adoption of new technologies is a strategy to give the project a chance to survive along the
time and also a better
chance to be adopted in real world scenarios. My past experiences taught me this strategy works, but
it is also very risky and several good ideas suffer premature death due to the excess of effort
required by the learning curve and the absence of mind share around the new concepts.
In the other hand, it is not worth basing a project with medium marketing appeal in old and stable
technologies because it ends like a scholar work: beauty, nice tailored but extremely boring. That kind
of project everyone knows how to do but nobody has time to do, so your project is just something easy to
be done and it will probably be overlapped by other project with the same nature - eventually with more
resources or just a better pedigree.
The innovation dilemma
Now we have to think about the classical dilemma in software design:
How to design a software that will be innovative, useful by
its robustness and easy to maintain with scarce resources?
I will leave the answer for you, I have my own concepts about that but I prefer to wait your thoughts
to not influence your suggestions.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first)
-
I would certainly use genesis to build the desktop application, probably with raw Swing or maybe the NetBeans platform.
Posted by: mister__m on June 13, 2007 at 07:09 AM
-
As said before, choose the technology you know best, instead of trying to predict the future.
Posted by: kirillcool on June 13, 2007 at 11:06 AM
-
Ok, that is the default conservative approach in commercial projects, where the fear of loose money push people to adopt obsolete and very stable technologies. But some day you must go beyond FUD and try something new :) The equilibrium between innovation and productivity is the goal of our discussion.
Posted by: felipegaucho on June 13, 2007 at 11:14 AM
-
What the [blip] does this have to do with FUD? If you have more experience with Swing, do it in Swing. If you have more experience with AJAX, do it with AJAX. If you're a .NET shop / guru, do it in .NET. If you just want to experiment with something new and shiny, you can do that as well.
Posted by: kirillcool on June 13, 2007 at 11:50 AM
-
sure kiril, but imagine you are a master in Swing (I guess this one is easy for you ;) but you have been listening about JavaFX and its special features. You think that pehaps JavaFX could be good, and if you a re lucky, this new technology can upgrade your application to a next level. But you feel fear about the time you have to produce, a lot of doubts about what exactly JavaFX means and uncertain about the results and also if you really should try that ;) You must decide to risk the project in the new technology or go to the safe-side of the old knowledge - that is the point...
Posted by: felipegaucho on June 13, 2007 at 12:33 PM
-
Felipe - as with any new open-source project, it all boils down to how much resources do you have and what is more important to you, the process or the result. If you have limited resources and the result is more important to you, then it's better to stick with whichever technology you know best. If the process is more important then the result (and you're OK with abandoning project in midstages, as long as you learn something new), then sure - go on and try new stuff. You'll make all the beginners mistakes, and you'll learn a lot in the process. *And* you'll have much better idea of the relevant technology when the time comes for the "real" projects.
Weigh your resources (time, money), don't believe the marketing hype, and consider if you're OK with stopping the development in the middle due to wrong technology being chosen, work / family taking your time etc.
Posted by: kirillcool on June 13, 2007 at 01:23 PM
-
I thik there are tow ways.One is what you said use the novel technology.
And the other is ues some new theories which maybe almost from the mathematics in some funny aspects or some business.
Make the Theory and Technology "CrossOver", that is excite and full of meaning.
Posted by: adwar on June 14, 2007 at 06:30 AM
-
innovative,
useful by its robustness and
easy to maintain
Ok, pick two. Because that's what you will get, two out of three properties.
Posted by: ewin on June 14, 2007 at 11:22 AM
-
let me reframe your question. I think what you are asking is how to adapt to a rapidly changing technological environment.
For instance with Java it seems like every week there is a new silver bullet technology coming out just in Java. But there are also other competing technologies that sound interesting, Flash, Ajax, Silverlight, .net, mono, Spring, Struts 2, Tapestry. Everybody thinks theirs is the best ever.
Firstly, it is important to remember, that there are no silver bullets.
Secondly, consider your audience - any project whose reason for existing is that "Java is too hard" is (a) likely doomed to reinvent the wheel... badly... (b) not particularly useful if your audience is experienced Java developers.
Replacing moderately complex (or trivial) Java code with something else typically means that you need to translate the logic across too. This probably has something to do with Turing completeness. Eg if you need something that is Turing complete, then replacing your current Turing complete solution with something else means that thing must either already be Turing complete or you must hammer the peg into the round whole until it becomes Turing complete. Some languages (*cough* XML *uncough*) are much better at expressing data than logic.
Any sufficiently complicated configuration becomes a language. How many languages will you force people to learn? I've been on 'Java' projects where there were 12-14 different 'languages' in use. If it is the web then you already have HTML, Javascript on the client end and Java and JDBC back on the server... start tossing in things like JSPs, strange XML config languages etc... well, it balloons out of control pretty quickly, and usually because 'Java is too hard'.
Flexibility is the enemy of simplicity.
If your configuration or glue code is scattered around all over the place, then in order to make even the most trivial change (or even to merely get your project to _run_), the potential helpers will have to grok the entire project. As it gets bigger, this will be harder and harder. This is why Struts sucks for instance. And is probably why the only people who write applications using 'the Netbeans platform' are those whove invested a massive amount of time and energy in learning it already.
Ease of machine processing is the enemy of human readability.
Maintenance sounds like a big issue for you, so I think you need to look at frameworks that trade off power for ease of use and learnability. Do you need Framework 2000 that is all slicing, all dicing if you suspect that the 2000 comes from the size of the manual? And that it is kilos, not pages?
So what is my solution? I do something I highly recommend, and something I don't highly recommend.
The thing I recommend is having friends who are on the bleeding edge. There are so many edges out there in Java that it is hard for any one person to bleed on all of them. So stay in touch with people from different areas. But make sure that they are people that like Java. There are plenty of people 'in Java' who seem to hate Java, and will do everything they can to avoid using a simple Java solution. Just because their day job is Java doesn't mean that they love it. Example: I think one of the Java Posse guys fits into this category (Joe?), because every opportunity he gets he is singing the praises of Scala.
Which is not to say that Scala is bad, but rather that if your target audience is Java developers, then telling them that step #1 is learning Scala will ensure your project never gets any help... (except maybe from Joe(?) - and with him in your corner at least you'd get great publicity ;-)
Now for the thing that I don't recommend. I had become so fed up with XML creep that I'd decided to take a serious look at other languages.
Python I dismissed because I don't like the magic underscore prefix warting. (Whereas I actually like their ideas about indentation and so forth)
Ruby I dismissed as the mutated offspring of Perl
Applescript and Objective-C I have dallied with. However the contrast could not be greater with Java. Objective-C is about to get a major facelift, and the discussion is all taking place behind closed doors, and it costs $1000 to get a key to those closed doors. Whereas with Java everything is completely out in the open, so that although you know they will do whatever suits a particular small circle of individuals (eg something horrible like generics), at least you know what is coming down the pipeline (and occassionally something good happens, like Annotations or Java EE 5). Whereas with Objective-C it is a huge gamble, you just have no idea, and no way to prepare, and no way to learn the new features unless you pony up the cash.
So because it is a huge gamble, that is why I wouldn't recommend it for anyone else.
Posted by: rickcarson on June 14, 2007 at 06:08 PM
-
nice post rickcarson,
well, I am 100% Java-oriented. Of course I have experience in other technologies, but for a long time now I adopted Java as my curriculum subtitle ;)You are right, the anti-Java squad is all over the market, and it is very expensive in terms of energy and motivation to try to convince the word about the Java qualities. Instead, I just accept Java as one of my technical-born skills - don't matter what other say. While it keeps the comfort and safety of my family, it will be that way :)And I agree about the silver bullets, they definitely don't exist.
Posted by: felipegaucho on June 15, 2007 at 02:06 AM
-
The subject of a very wonderful and distinct
I thank you for continuing excellence
Thank you
=========================================================================
ليبيا
شباب ليبيا
libya
منتديات
منتديات ليبية
غرائب وحقائق
أحاديث شريفة
برامج اسلامية للجوال
مفاتيح الديجيتل
الشيرنج
الرسيفرات
كتب إسلامية
خلفيات للموبيل
الشعر الشعبي
الصحة والطب
طب اسنان
كتب طب اسنان مجانية
برامج طبية
تعلم الإنكليزية
اللغة الفرنسية
طب الإعشاب
الخواطرالادبية
الازياء والمكياج
تعليم الطبخ
الاثاث الحديث
مقاطع كرة قدم
المصارعه الحرة
اهداف كوره
الفوتوشوب
اروع البرامج
الدوري الليبي
خلفيات رياضية
المصارعة
كورة عربية
كرة قدم عالمية
الدوري الإيطالي
الدوري الاسباني
الدوري الإنجليزي
صور المشاهير
انواع الحلويات
افلام كوميدية
احدث الافلام
افلام
التقنية
تحميل افلام
برامج
اخر برامج الجوال
kaspersky
أفلام كرتون عربية
برامج برامج كمبيوتر
برامج حماية
برامج اختراق
برامج صوت
برامج تحميل برامج احدث البرامج
محادثة
خلفيات الطبيعة
برامج مبايل للتحميل
اخبار الفن
احدث الافلام للتحميل
تحميل افلام رعب
ترجمةأفلام
الكامات
برامج جوال
برامج محاسبة
برامج
kasper
games
برامج
برامج
انترنت
برامج صوتية
شبكات الحاسوب
خلفيات للويندوز
تطويرالمواقع
العاب
العاب الفيديو
games
شفرات
برامج مسنجر
خلفيات شاشة
صور ترحيبيه
الفوتوشوب
خلفيات طبيعة
تطويرالمواقع
الفوتوشوب
مقاطع البلوتوت
مسجات ليبية
خلفيات
الفلاش
التصميم الثلاثي
برامج الجوال
العاب الجوال
فيديو كليب
مسجات
ترددات ستالايت
نغمات
Posted by: libyan on May 30, 2008 at 02:27 PM
|