views:

874

answers:

5

Does anybody knows which language or techno used to develop the Spotify desktop application ? It's stable, good looking and lightwight !

Thanks

+1  A: 

It's a plain Windows executable, with only two obvious dependencies (according to Dependency Walker): kernel32.dll and ntdll.dll.

So it probably loads any other dependencies dynamically. My guess would be that it's simply written in straight C++ by people who know what they're doing.

unwind
+1  A: 

Given it's running on windows, clearly not .NET (Process explorer is telling me that), didn't follow a AIR install process, I'd say C++ using cross platform libraries.

Everything is compiled down into one executable, which indicates they had access to the source of all dependencies.

W.r.t to Techno...i think they used Hardhouse Electronica

CVertex
+4  A: 

Here's the list of third-party components they use (on top of C++ of course):

  • Boost
  • Expat
  • FastDelegate
  • giflib
  • libjpeg
  • libogg
  • libvorbis
  • Mersenne Twister
  • zlib
  • NSIS (Windows only)
  • Windows Template Library (Windows only)
  • Growl (Max OS X only)
  • MATrackingArea (Mac OS X only)
Raf
Is any of this a GUI library?
Jonas
Nope, it looks like they use their own GUI elements based on native ones on Windows and Mac separately.
Raf
+1  A: 

compiling down to one exe doesn't mean you've got access to the source of everything your libraries can be pre compiled.

"My guess would be that it's simply written in straight C++ by people who know what they're doing."

I don't think the author of this comment has written a line of c++ in their life! 1) c++ is far from simple 2) straight C++ - which revision of the standard would we be talking about here??

A: 

The frontend is written in FLEX, checkout the sources on your mac or windows machine. You will see a lot of xml file which are in the flex file format.

Off course the connection to the server and platform integration is probably written natively in c++. But the UI part is just FLEX...

related questions