What are the disadvantages of Xtend? [closed] - xtend

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What are the disadvantages/drawbacks of using Xtend?

By asking the development team of Xtend, I got the following answer:
Dear Mr. X,
The major drawback compared to Java development might be that although
Xtend's tooling is much better than the tooling provided by other
languages, it's still not as good as what Eclipse can do for Java
development.
Also note, that Xtend misses some features you might need when
integrating with existing Java projects :
- definition of constructors
- field initialization
- declaration of static methods and fields
The next release will have these features and will also come with an
easy to use integration to run the compiler in Maven or Ant. It's
planned for later this year.
Best Regards, Sven Efftinge
So, to conclude:
(as bjz mentioned) it's quite coupled with an Eclipse environment
critical features are missing
Nevertheless, they seem to be working on them. There is also, a What's next Section

Since version 2.2 - The Eclipse Xtend Language ( released December 2011 ) now ships with support for both the Apache Ant and Apache Maven build tools.
With the additional of this support, a major drawback of not being about to use Xtend in your continuous integration/build process has been resolved.
Whislt official/native IDE support is still limited to the Eclipse IDE, both IntelliJ IDEA from Jetbrains and Netbeans from Oracle offer excellent Maven support which will assist development until IDE specific support is developed.

I haven't tried out Xtend extensively, but I did come across this article last week, and I found very enlightening:
Tight coupling with eclipse tooling
Xtend and Xtext are doubtlessly eclipse technologies through and
through. This is a definite advantage for starting to use these
technologies since they offer nice integration with the eclipse IDE.
As a downside, however, code written in the Xtend language might be
difficult to use with other tools apart from eclipse. On the other
hand, the Java code generated by Xtend is vanilla Java code (apart
from the lightweight Xtend library used in the generated code). This
code, of course, can be used by most other tools. Therefore, I have
chosen above to place the xtend source files not in the main Java
source code folder of the project (src/main/java) but into a separate
folder (src/main/xtext). This enabled to let Java code be generated
into the src/main/java folder. From there, it can be picked up and
used by other tools such as Maven.
In places, insufficient documentation
The documentation available for Xtend is far from extensive. In
comparison, the documentation available for Groovy is extensive
including books and various web sites.
EDIT: Xtend now has a standalone compiler, but they still seem to be pushing the Eclipse integration. Which is completely fine by mean, but it does mean that you won't have as great of an experience in other IDEs. Check out their site to see their future plans.

Related

W8 Store App: Writing UI in HTML and CSS, and using C# DLLs for Domain/Model? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We've started to research the possibility of creating the LOB W8 Store apps pushed to Surfaces through our/customers' domain store. We've got a portfolio of working WinForms and WPF apps written in .Net, and are thinking of migrating some of them to Surface because of the customers' preferences.
Now I've got a dilemma: I've made a research about development technologies in Windows 8, and from what I have read and tried it seems the best way to utilize the W8 Store development techs is to use this combination:
HTML, CSS, JQuery and JS for UI development (View), and
C# and proper .Net for the Model/Domain part of the solution.
The fact is (or IMHO), that XAML is heavily bloated compared to lightweight HTML/CSS/JQuery when creating triggers, effects, animations and UI, we don't have that much developers' time creating the UIs.
On the other hand, JS is (IMHO, again) unusable for Domain/Model application because the code would have to be rewritten (no time for that) and, despite the language and type-checks introduced in JS, I think the language is hardly usable for our Domain/Model requirements and learning curves.
From what I was thinking, is there a possibility of writing the UI part in HTML/CSS/JQuery/JS and Domain/Model parts in .Net/C#? So that we'd have a bunch of HTMLs, JS and, let's say ViewModels to bind to, and a domain DLL written in C#?
I mean to use it similarly to creating a solution in C++.Net and adding a couple of C# and VB.Net projects/dll references to it and referencing the classes in it?
I read that the only way how to achieve this (since the JS app is native AFAIK), is to use the Interops and COMs, and, I'm afraid that this would not be possible with our software.
Thank you guys.
A Windows Runtime Component should enable what you want here and provide a seamless integration with the JS front end (read: no messy interop/COM for you to worry about). The Windows Runtime component you write in C# can use any of the .NET functionality allowed for the Windows Store (so you're not losing any capability there); however, what you expose from the Windows Runtime Component can only use Windows Runtime types for parameters and return values, which you probably expected anyway.
Check out the Walkthrough on the Dev Center and Creating Windows Runtime Components in C# and Visual Basic for more details.

Hudson vs Jenkins in 2012 [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
In 2011 situation with Hudson and Jenkins was following(IMHO) - Hudson was a little bit stable, but development of Jenkins was a little bit faster.
What is the situation with "Hudson vs Jenkins" now in 2012?
I have used both Hudson and Jenkins. I have been following both change lists.
I still think we made the right choice by moving from Hudson to Jenkins.
The Hudson core developers are now working on Jenkins. Those who are still employed by Oracle are the ones mainly supporting Hudson (as far as I am aware the Apache Maven people are contributing fixes as well).
I've filed a number of bugs back in the Hudson era. I can tell you most of them were resolved in Jenkins. Many months after their resolution, the Hudson people fixed or asked for further input on those particular bugs.
The majority of the plugin developers (almost all, that is) have migrated their plugins to Jenkins and now support Jenkins mainly. In terms of plugins Jenkins is developing much, much faster. There are now some paid plugins provided by Cloudbees.
As far as I am aware, the open source community has moved in it's majority to Jenkins.
Some companies who prefer to have paid support and don't want the hassle of migrating to Jenkins are still using Hudson. Frankly, I don't see why. Jenkins has commercial support too from Cloudbees, which is where Kohsuke Kawaguchi (the creator of Hudson) now works. Cloudbees now even have a free service for hosting GitHub hosted projects in their cloud. They let your OSS projects build for free! :)
Jenkins has improved it's support for the cloud. As mentioned above, Cloudbees also provide this SaaS in the cloud. I am not sure if and to what extent Hudson supports this. I think they're not so advanced at the moment; whatever the case, Hudson doesn't provide a SaaS for the cloud, as far as I am aware.
My opinion is that if you have to pick one, it should be Jenkins.
In terms of stability, for over a year Jenkins has offered a Long-Term Support (LTS) version for people who want to be more assured about the stability and support of the software they're installing.
Every three months or so, a previous release is selected which has been deemed as working well by the community of Jenkins users. This version is then branched, any important fixes (which have been "battle-tested") are backported into this Jenkins version, and then this release gets extra testing by various people and companies. Once it's ready for release, this becomes the new LTS version.
As new high-priority fixes come along, these are backported to the LTS version.
Numerous large users of Jenkins stick to the LTS line of releases, and according to the public Jenkins usage statistics, several thousand deployments are using it.
This should mean the LTS version you are downloading is even more stable than a random version chosen from the usual weekly release line.
Beyond the statistics, the situation regarding Jenkins usage, community size, its level of development, rate of new features added, number of new plugins and mailing list activity in comparison to Hudson doesn't seem to have changed (i.e. Jenkins remains ever-further ahead).
Basically, most of the points made in this previous discussion still apply, though the initial corporate support of Hudson appears to have subsided a little.
I think https://stackoverflow.com/a/5970813/556520 answers a lot of important questions about the hudson vs jenkins issue. The topic explains both sides of the situation with pros and cons for each product.
From personal experience working with CI for years, and recently started developing for Hudson, I would stick with the stable version of hudson just because jenkins is doing more development and support for their cloudbees service, where hudson has moved to the eclipse foundation and is not developing for a service. That's just my $0.02.

Software Project Management systems [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Ok, so I've only recently started getting serious about learning how to program, and I've started using Mercurial to manage my projects. I chose Mercurial over SVN because of it's ability to commit changes to a repo while not connected to the internet (these days I find myself in areas without internet access). I'm looking for a piece of software (preferably free, because I'm on a really tight budget :-P) that will allow me to manage a bug database and TODO list for each of my projects without requiring an internet connection. Is there anything out there that'll allow me to do exactly that (maybe more)? I'd prefer something that can work alongside Mercurial, because it'd be a pain to switch source control systems at this point.
Dot Project, best so far in my view.
http://www.dotproject.net/
http://bugseverywhere.org/be/show/HomePage : Bugs Everywhere is a “distributed bugtracker”, designed to complement distributed revision control systems.
Supports Arch, Bazaar, Darcs, GIT, Mercurial
You may be interested in a DVCS called Fossil which has a built-in bug tracker and wiki. I've never used it but it looks like it might meet your needs.
Ok, so it's been a few days and I still haven't found anything that's suitable for my needs. Fossil sounds great, but I miss the Windows shell extensions that TortoiseHg provides (I don't like working on command lines), dotProject is a hosted solution and if I want to run it locally I have to set up WAMP. The BugsEverywhere repo seems to be down (I cant get anything from it using bzr), and Artemis is good but its easier for me to work with something that has a GUI. I found FogBugz, and its a step in the right direction for me, but it's not free (I'm using their 40-day online trial right now. I'm probably going to end up writing one, in Python using Django since I have some experience with it. I know that I shouldn't be re-inventing the wheel, but in this case the wheels available just don't fit right...
Here's a Mercurial extension that tries to provide this - ArtemisExtension.
ticgit, a git based distributed ticketing system, including a command line client and web viewer. it works alongside git. but if you really need distributed source and bugtracking
and you like this application, the cost of switching vc may be acceptable.
CodeBeamer MR looks interesting: http://www.intland.com/products/cb-mr/overview.html
and promises to be free 'forever'...

What are CAD apps written in, and how are they organized? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What are CAD applications (Rhino, Autocad) of today written in and how are they organized internally ?
I gave as an example, Autocad and Rhino, although I would love to hear of other examples as well. I'm particularly interested in knowing what is their backend written in (multilanguage ?) and how is it organized, and how do they handle their frontend (GUI) in real time ? Do they use native windows API's or some libraries of their own, since I imagine, as good as may be, the open source solutions on today's market won't cut it. I may be wrong ...
As most of you who have used them know, they handle amongs other things relatively complex rotational operations in realtime (shading is not interesting me). I've been doing some experiments with several packages recently, and for some larger models found that there is considerable difference in speed in, for example, programed rotation (big full ship models) amongst some of them (which I won't name). So I'm wondering about their internals ...
Also, if someone knows of some book on the subject, I'd be interested to hear of it.
3D Mechanical CAD software such as CATIAv5, Pro/Engineer and Solidworks are mostly written in C++, sometimes with a thin COM interface for publishing basic API to customers.
Since these applications are really huge and are being developped by several teams, they rely on large scale C++ design principles, such as Interface/Implementation patterns to insulate the modules from changes.
They are composed of several subsystems such as:
a base framework to provide abstraction from the underlaying OS
a framework for GUI, dialogs and user interaction
a 3D renderer (mostly using OpenGL with some custom scene graph layer)
a geometric kernel, with a tessellation module (so that geometry can be displayed in the renderer)
a parametric modeler build upon the geometric kernel
and a lot specific modelers targeted at different domains (Mechanical, Drafting, Simulation, ...)
As my company is a registered developer for AutoCAD, I know for certain that its written in C++. It exposes a COM interface, as well as a .Net wrapper. Also, it graphics display is componentized and could be possibly replaced.
Way back in its history it used be cross-platform. However its been Windows only for about 10 years and now takes advantage every Windows feature I've seen.
You may be interested in the Open Design Alliance.
AutoLISP is a flavor of lisp that has been used for years to program AutoCAD. Very powerful, not at all friendly.
AutoCAD (and most verticals) have had VBA built-in for about 10 years. Kind of powerful, very friendly. VBA projects are stored in a separate file that is loaded by a mechanism internal to the host program.
The latest version (currently 2010) no longer includes VBA by default. You must install a separate VBA enabler. This is to put us on notice that VBA (VB6 for that matter) will at some point be a thing of the past. The .NET platform is currently the preferred choice. VB.NET, C#.NET, C++ are commonly used. Some have experimented with other .NET languages like F# and IronPython.
The open source project BRL-CAD might interest you.

Best Way to Begin Learning Web Application Design [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm a long time hobbyist programmer interested in getting into web application development. I have a fair amount of personal experience with various non-web languages, but have never really branched over to web applications.
I don't usually have any issues learning new languages or technologies, so I'm not worried about which is the "best" language or web stack to work with. Instead, I'd like to know of any recommended resources (books, articles, web sites, maybe even college courses) that discuss web application design: managing and optimizing server interaction, security concerns, scalability, and other topics that fall under design rather than implementation.
What would you recommend for a Standalone Application Developer wanting to branch out into Web Development?
There is a wide variety of web application languages you could get into. The ones I have most experience with (and therefore will be talking about here) are PHP, eRuby and Ruby on Rails. All of these have good tutorials available on the internet - I'll link to some of them below.
Which to choose depends on exactly what you're looking to do. Using PHP and eRuby you have to do most things yourself - whereas Ruby on Rails will do lots of stuff for you (useful, but can also be dangerous if you don't know what you're doing). Ruby on Rails is good for doing database related things - for example the standard CRUD (Create, Read, Update, Delete) application. The standard kind of app Ruby on Rails (often abbreviated to RoR) tutorials teach you is a blog application (Create entries, Read entries, Update entries, Delete entries) or an Address Book Application. It is possible to do many of these sort of applications almost in one line of code - using RoR's 'scaffold' function.
PHP and eRuby make you do more of the work yourself - but this can be better in some situations. PHP is more well known and used than eRuby, but I like the Ruby language so I tend to like using eRuby. These are both good for doing simple applications (like contact forms on websites) or more complex applications (phpBB - a piece of forum software is written in php).
As for which one to choose - I'd have a play with them and see what you think. Try running through the first few bits of a tutorial with each and see how whether you like it or not.
Here come the links to various tutorials:
PHP
PHP 101
PHP Intro from W3Schools
eRuby
Beginning eRuby - not great, but shows you how you can embed it in HTML
Try Ruby in your Browser - helps you learn Ruby which you need to know for eRuby
Ruby on Rails
Rolling with Ruby on Rails - the latest 'revisited' version for the latest version of RoR
Rolling with Ruby on Rails part 2
There are a few tutorials to get you started. Some of these take you through installing the necessary software (webserver and anything else needed - eg. php or ruby) and some don't. A good way to get Apache (webserver), MySQL (db) and PHP installed on windows is to use XAMPP. If you're on linux then apache, mysql and php will be in your package repositories and there may be distro specific guides to setting them up.
A lot of languages have web counterparts. JSP for Java, Rails for Ruby, Django for Python, etc. That might be a lead.
If you want to go for the platform with arguably the biggest user base (and with that, the biggest pile of tutorials and examples), go for PHP.
I strongly advise on looking into various frameworks though. For every web-oriented language there's bound to be a lot of resources that take away the trouble of writing all the low-level plumbing code, so you can focus on the stuff that matters. Personally I almost exclusively use .NET, but I've heard about a bunch of nice PHP frameworks, like the Zend platform and CakePHP (for MVC development).
If you intend to also use javascript in your applications to give that nice web 2.0 feel to your applications, please, use a library that hides the messy browser details. You'll go nuts if you try to do all the cross-browser scripts yourself. Some good ones are Prototype and jQuery.
Eloquent JavaScript and AppJet offer great tutorials that allow you to follow along while you learn.
Once you cover all the basics, Ajaxian should answer many of the questions you have about application design, etc. Not only do they post many excellent articles on these topics, but you should explore many of the sites they link to, as these sites usually also provide a wealth of info.
When it comes to server interactions, know your options. Ajax isn't all there is. Research technologies like Comet and JSON-RPC, as well as looking at various server-side frameworks that provide easy access to JavaScript such as DWR, Jayrock, or any tool that exposes your functions to JavaScript using whatever language you choose to use on the server.