What is the best IDE to develop websites? - ide

I'm at the begging of my web development career and at the moment I use Atom to develop Websites. I really like the UI and big choice of shortcuts and command palette.
My question is, are the most powerful IDE's the same and its only a matter of taste to choose one or the other or is there some out there that have amazing features that are very helpful and other don't. If so, please come with arguments/examples. Thanks!

Related

Would like some pointers for Xojo

My company is planning to build a simulation tool for processing (beverage) and we're currently looking at a half-baked system written in Xojo. I had personally never heard of this language and would appreciate it if anyone could give a quick assessment.
We have no in-house Xojo competence at all and are of course reluctant to bring in a system that would require a big investment in know-how for just one system.
So, we're now looking at our options: Port it to a language we're good at (C# or Java) or continue development in Xojo while building internal skills for the language.
So, what are the big pro's and con's with Xojo?
Cheers
Xojo has been around since the late 1990s, then named RealBasic. Its strength lies in its ability to make native looking and behaving apps for many platforms, mainly OS X but also Win and even Linux. The dev community is fairly small, though. But the company managed to stay in business all this time and isn't looking to end it any time soon.
The language is fairly simple and easy to learn, using long known concepts (its design was based on Visual Basic).
Knowing Java, it should be easy to grasp the language. The bigger hurdle is probably getting familiar with its libary. Many things are much simpler to accomplish in Xojo vs Java, though.
Call me lazy, but that's what I like about Xojo. I also program ObjC in Xcode, but for those little tools that just need to work quickly, Xojo is superior for whipping out a program quickly that that has a decent UI and works on many platforms with little to no tweaks.
If you need x-platform support, give it a try, for sure. If you only need the app to run on a single platform, and if you have skills with other dev systems, I'd advise against starting out with Xojo, to avoid the risks you get when going with such a small company that's offering closed-source software.
In your particular case where you have already a half-working solution, I suggest you take a few days to familiarize yourself to get a feeling for it (you can use Xojo for free as long as you don't build standalone apps with it). It's overall fairly stable and I'm still using a 3-year old version most of the time to develop and build my apps. So, even if Xojo should go out of business suddenly, I'd not be too worried. As long as you stick with the simple functionality (e.g. not use unique features such as XojoScript), you can still convert the app to another language later, but there's also a fair chance you never have to.
If you are looking for someone to take a look at your Xojo project I'd recommend posting on the Xojo Find A Developer page at http://www.xojo.com/support/consultants.php where all Pro developers get it. The consultants that want to talk to you about it will then contact you. (Full disclosure: we, BKeeney Software, are on the list and would be happy to help you figure it all out).

GameSalad like tools for PC

Anyone knows of a tool like GameSalad for PC in which you don't have to write scripts or anything but just use the existing behaviors and events to create custom game logic?
Thanks
If you are looking for a cross platform game constructor you might want to try Flowlab, which runs in a web browser.
Construct from Scirra is a free, open-source, drag and drop, game engine. There is however talk of them making a paid version of Construct in the future.
I've only used Construct once, so I don't know that much about it, but i do know a lot about GameMaker.
As long as your not trying to do something complicated like a 3D or MMO game, (both of which GameMaker supports, but with major limitarions) I would recommend you use it, especially if your just starting out. GameMaker is one of the easiest if not the easiest programming language to learn. It also teaches good programming skills. As I mentioned before GameMaker uses drag and drop so you can easily transition from the D&D to the progeamming aspect of GameMaker.
As mentioned in the above posts RPG Maker is another popular tool , but it's limited to RPG games, and doesn't allow you to easily transition to an actual programming language. It's also very restrictive in what you can do.
When you feel like getting into some more advanced gaming engines, Blender is a great tool to use for creating 3D games. It can also be used to create 3D modules and has the ability to create animated movies.
I've never used PyGames before, but Python is a easy language to learn, and would probably be the best way to transition from a D&D program to a programming language.
*GameMaker can be extended in functionality with DLLs and Blender can be extended with Python.
So to summarize, GameMaker is a great tool for creating Games. RPG Maker and Construct are other possibilities, but from my view there not as good as GameMaker. when your ready to get out of Drag&Drop gaming engines Blender, PyGames, and GML(Game Maker Language - the advanced part of the GameMaker product) are all great resources.
PlayBits has an interface similar to GameSalad and makes games for Windows Phone 7, using your PC. Here's the link: http://www.playbits.com/?page_id=171
RPG maker here you can find it is a light weight game engine but if you are clever you can make really good apps
In terms of game development for iOS and Mobile development using the Windows platforms you might want to have a look at these two:
http://www.giderosmobile.com
and
http://www.stencyl.com/
Although I haven't, yet, used the Gideros solution, it's targeted specifically for Mobile platform development and has what looks to be a tidy UI with code folding and syntax coloring if you're comfortable with a traditional coding approach.
Stencyl is an interesting product, it sits beyond the capabilities of Gamesalad and uses a blocks metaphor for programming which works well.
Personally, I wouldn't use any tool that has a single platform for output, which is why I stopped using Gamemaker (I'm aware it now has a Macintosh client, but the quality of the application has been terrible and their player isn't much good either.)
If you're looking for GameSalad for Windows you might want to check out our HTML5 game engine Construct 2 which functions in a similar way.
It's also got an event based system with no programming required, and there's an extensive free edition available for you to try out as well.
You can use Yoyo Game's GameMaker:Studio also.
GameMaker is one such tool.
There is also The 3d Gamemaker, by the same people who make other rapid-game-development tools like DarkBasic.

Language to learn to move out of manual testing towards automated/programming [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have been working as a manual tester and documentation (Test plans etc.) personnel in a company's software/IT division. I do not have a big programming background but I want learn programming language(s) and tool(s). Hence, I am looking for automated testing tools and programming language(s) to learn which also give me industrial advantage.
Some points to note are:
I need to know which tools are the most common in the industry and languages associated with those tools.
I do not have a lot of time to learn loads of stuff. Hence, I am looking for tools which use languages that are beneficial to learn in case I want to do more programming.
I'd prefer Web based app testing but that is not a constraint.
You can give 2-3 languages as I understand there cannot be one winner.
I have done some QTP which uses VBScript but VBScript is not broadly used. I want to learn a language that had broader base.
Please still give your inputs and ideas even if this question seems really difficult to answer.
Thanks in advance.
EDIT:
I think so far I have decided that I will go for:
QTP
Selenium
Test Driven Development Methodologies
I just need to figure out a good programming language that gives me a programmer's edge and is suitable for multiple testing tools (including Selenium). Maybe Python, Ruby or Java?
Wow this is quite a widesweeping question. I'd say you were in a good position as the industry moves towards a Test Driven Development (or write your tests before your code) model.
First of all you'll want to know about Unit Testing, Continuous Integration and Web Automation.
I'm going to focus on the areas I know (.NET, Java, Javascript, Build automation, Selenium)
In .NET NUnit is probably the most widely used unit testing framework. It is a port (copy of) JUnit in the java world. Most unit testing frameworks are very similar to these in terms of the concepts. So learn one and it won't take you long to pick up the others.
I think reading the above links and having an idea about these concepts will get you on your way. It's probably worth experimenting with Python or Ruby as these have low barriers to entry to mess around with some simple tests.
For web based testing the most well known are probably Selenium and Watin. These allow you to script browsers to perform actions automatically. However, I have come across very few good usage of these and they are very fiddly (you're talking days/weeks of effort) to get set up and useful. Again the concepts behind these are similar whatever framework you use.
Think I answered 4,5,6 in 1,2,3 :-)
HTH
As for 'industrial advantage' it depends what you mean by that.
For big companies QTP is widely used. Thing to learn with QTP is not really the language, but the tool itself. For me it was more troublesome to overcome tool specifics than learning VBscript. If you would think about performance testing, than PerformanceCenter would be probably the choice. Here you have C as language but again, there is more struggle with a tool than with a language.
In some companies there is stack from IBM, so Rational software comes to play (FunctionalTester, Robot, PerformanceTester). There is also a bit of tool complexity to get through (IBM Redbobks can help).
In smaller companies Java/C# could be beneficial. Here you can get familiar with junit/nunit/TestNG/MSTest. For webapps things like Selenium/Watij/Watin/Fit/Fitness/Concordian are worth to look at. If you have a moment look at AutoIT,PowerShell,Python,Fiddler,Jmeter, Abbot, Watir/Cucumber,Sikuli.
There is also lots of other tools like WebAii, TestComplete, Twist.. some others commercial tools. Usually you can get trials for them to play with it for week or two.
Everything depends on what kinds of project you will be exposed to, and what kind of company it will be.
Regardless, in my opinion it is enough to learn Java/C# to some degree. You don't need to be C#/Java ninja, know every library, and study really hard given language. You see Developing software is more than knowing a programming language, and test automation is more than knowing a tool/language (M. Fewster & D. Graham), so don't get obsessive about it. If you can program script in QTP (not record but program, using Descriptive Programming, decomposing logic to libraries, having full control of TestResults via proper methods etc.), than other tools won't be an issue. You may need like week or two to learn basics of given language, but that is all for test automation (for start at least). You need more to have some experience, to know tools, to know concepts, to know pros and cons of different approaches, to have bigger picture in head, than just 'how do I write this in that language' (you have SO for this :D ).
The answer to this question really depends on a couple of things. First, what kind of testing are you doing? Testing web-based applications? Testing libraries/components of a larger program? GUI testing? Testing command-line apps?
I have found the following useful when creating scripted/automated test facilities:
TCL - TCL can interface with the command line as easily as a batch file, but has a powerful language that blows batch out of the water (including GUI capabilities). If you are scripting Windows-based console apps (either to test them or to use them to test something else), I recommend taking the time to lean TCL.
AutoIt - This scripting language lets you automate UI interaction with Windows apps quickly and easily. It is also fairly easy to learn. If you want to take the time and trouble to develop a screen-scraping utility, you can combine it with AutoIt to create some pretty sophisticated test systems.
C - When testing compiled libraries, I have had a surprising degree of success using good 'ol C. I'll write the basic skeleton for a test app and create a scripted utility that will dynamically generate the rest of the code based on what tests need to be run (I give it a library of sample C snippets that it can use for more complicated tasks).
Ruby - When you are doing automated testing, a robust scripting language can go very far. Whether you need to parse test logs, generate reports, or auto-generate test scripts, a scripting language that you know well can save you a lot of time and headache. My language of choice is Ruby, but others at my company prefer other languages such as Perl or Python. Language choice isn't too important, pick one and learn it well.
Depending on what it is that you are testing, you may also have some sort of testing tools built into the code that you are testing. Java code is sometimes written with JUnit tests, Ruby code can use the Test::Unit framework, etc. Here is a list of unit testing frameworks for a wide variety of languages. If the code you are testing was built with unit testing in mind, you will want to learn the language the code was written in so that you can take advantage of these unit tests.
For web based testing you might want to check out fitnesse. Also, an automated test framework built on python is the robot framework.
Selenium is very popular for automated testing at the QA level.
No matter what you do, there will be some learning curve associated with your solution
The point of Selenium is to provide a testing framework for webapps -- you use Selenium to manipulate DOM elements in the browser, no a running version of your application.
Selenium is a client/server model (you run the server somewhere that has access to your QA app instance; you code your tests using the client libraries) that provides clients in a number of languages (java, ruby, etc)
This type of testing is a good idea if you have have dedicated QA resources that can write code. It provides some high level regression testing. However it is not without its drawbacks: (1) tests can take some time to run, (2) you might need to make some changes to your web application dom elements to use the framework easily, (3) changing the web app will require changing your testing code, which can be non trivial.
Your other options is to write unit tests for the application code. Usually the developers do this as part of a test-driven process. So there is TDD for developers and then automated QA testing for QA.
I will also add a small comment
There is a new testing automation platform XML2Selenium
This platform is built on top of classis Selenium framework and provides many useful features
But it is quite easy to use
You don't need to learn any java or ruby - you can write in XML
SMth like that:
<!-- here we have some imports Frame - is like a class, you can extend it with extends -->
<import resource="Demo.a-server/03Registration/framesRegist.xml" name="frames"/>
<import resource="Demo.a-server/01Action/FramesAction.xml" name="framesAct"/>
<import resource="Demo.a-server/03Registration/FramesLogin.xml" name="framesLog"/>
<property resource="Demo.a-server/LogValue.properties" name="logValue"/>
<test name="creatAction" description="create and check action">
<frame extends="frames:logAdmin"/>
<frame extends="framesAct:createAct"/>
// here we upload the image
<upload id="img_id0" resource="image.jpg"/>
// click save button with id=save
<button id="save" />
// make a screen shot
<screenshot/>
// sleep for 3 seconds
<pause time="3000" />
// make a screenshot again
<screenshot/>
// navigate to the given URL:
<navigate to="${logValue.baseUrl}/admin"/>
<frame extends="framesLog:logOutAdmin"/>
<pause time="1000"/>
</test>
Here you can see report with errors:
http://xml2selenium.com/demored/xml2selenium/
And here you can see report with successful state:
http://xml2selenium.com/demogreen/xml2selenium/
PS: It supports testing in All browsers, not only in Firefox as Selenium IDE
Yes you can learn selenium IDE, Its just as an add-on on the firefox browser, using which you can record your tests and play them when required. The limitation of IDE is it can only be used on firefox.
If you are looking to test on multiple browsers, you need Selenium Grid or WebDriver, which requires a knowledge of java. And again you are not needed to be a Java pro to do this, a simple learning will help.
You can search the youtube.com for Selenium Tutorials.
Advantages of Selenium :
Its Open sourse!!
Its easy to learn and impliment..
Supports multiple browsers.
Supports multiple scripting/programming languages.
Flexible to your choice, simple record and playback (IDE), Comple Framework design to your choice by using your favorite programming language.
Supports parellel execution.
Hope this will help you.

Multiple Language IDE

I've been using Notepad++ for years and although it is comfortable I am feeling the need to move up into the IDE world for various reasons, which I'll outline below. I am looking for IDE recommendations for someone who works in multiple languages on a daily basis - I am currently looking at Eclipse and Netbeans but willing to consider any option.
The reason I have not made the switch to a full-fledged IDE yet is because they feel so bloated, they are slow to load and eat up a ton of memory. Recently, I have been working on an astronomical number of projects (5-6 at work, upwards of 10 personally) in a variety of languages (Python, PHP, Ruby, Java, Javascript, xHTML, CSS, TorqueScript to name a few). These are just the languages I am using on a daily basis - although I don't expect to find an IDE that will meet all the demands of these languages (especially the more obscure TorqueScript on the list).
So, what would you recommend for someone who needs a fast, configurable IDE that offers support for a variety of languages, syntax highlighting (preferably with various color schemes), project organization/browsing, Intellisense-ish code completion?
I forgot to mention I am primarily targetting the Windows environment here - when I'm on my Xubuntu machine (minimally) Geany works fine for what I need to accomplish.
I would recommend Eclipse as the closest match for the multi-language requirements. There are IDEs that possibly shine better for a given language (e.g. I prefer IntelliJ for Java), but none that have such a broad coverage of multiple languages.
As far as memory/bloat, it's a price you pay for the convenience that an IDE provides.
The Zeus IDE is pretty much language neutral, meaning it can be easily configured to work with almost any programming language.
It also has a lot of IDE like features (i.e project/workspace management, class browsing etc), yet still feels snappy and responsive like a light weight text editor.
Eclipse is kind of the Swiss Army knife of the programming world... With plugins, it'll handle pretty much any language you throw at it.
Well, Netbeans covers Java, Ruby and PHP which are on your list. It's definitely a bit bloated though, and I understand your pain there.
Emacs.
Seriously.
With those requirements, the closest you're going to get is Eclipse.
You might also want to check out SlickEdit. It won't offer you all of the features you are looking for, but it should be a hell of a lot faster than working through Eclipse.
Have you ever tried a web based one? Koding covers a whole pool of languages and above all that you get a free VM with root access. Definitely worth checking out.

Is a Homogeneous development platform good for the industry?

Is it in best interests of the software development industry for one framework, browser or language to win the war and become the de facto standard? On one side it takes away the challenges of cross platform, but it opens it up for a single point of failure. Would it also result in a stagnation of innovation, or would it allow the industry to focus on more important things (whatever those might be).
Defacto standards are bad because they are usually controlled by a single party. What is best for the industry is for there to be a foundation of open standards on top of which everyone can compete.
The web is a perfect example. When IE won the browser war, it stagnated for years, and is only just now starting to improve because it's hemorrhaging marketshare. The Netscape years prior to that weren't much better. The CSS 2.1 standard was released ten years ago and still isn't supported well. As a consequence, web development is a Black Art of hacks and work-arounds to get websites to render consistently.
My job would be a hundred times easier if I could build a website according to web standards and be confident it would display correctly. Just think of all the cool things we could have been working on instead of fixing IE's rendering errors.
I believe whenever there is only 1 option, it will definitely stagnate innovation. If all we had was 1 language, then we wouldn't be able to solve anything but what that language was designed to solve.
Imperative languages like Java and C# solve a certain set of problems pretty well, but it also helps to think in a functional manner sometimes, such as with Haskell and Lisp.
Furthermore, cross platform issues are not an issue if you are talking about a web application, because you control the hardware and software (note, I am talking of the server side code of course, the browser cross platform issue is separate).
Paul Graham wrote a great essay on how the Web lets you as a developer use the tool you think will solve the problem best.
No. Competition is good. It may make a web developers job easier, but I think it's bad for the industry. I personally prefer having choices.
I believe Joel Spolsky's technique of creating his own language (Wasabi) to insulate his company from being platform specific is a good one. I also believe it is a good idea to use products that accomplish similar things that are more targeted at specific problems like JQuery.
I'm gonna have to agree with Mike on this one and say that without competition there is very little incentive to innovate.