3 ms·
Although I agree with most of the comments you said, I have to strongly disagree with "First class C++ support of Windows Mobile" when compared to iOS (or even
by rburhum 11y ago
Although I agree with most of the comments you said, I have to strongly disagree with "First class C++ support of Windows Mobile" when compared to iOS (or even Android). I have an entire non trial stack of C/C++ libraries that I use which I easily bring to Android and iOS using a cross-compiling build system we wrote (https://github.com/amigocloud/amigomake https://github.com/amigocloud/amigomake). The C/C++ dependencies include :
Freetype v. 2.4.10,
OpenSSL v. 1.0.1m,
Bzip v. 1.0.6,
libidn v. 1.24,
GEOS v. 3.4.2,
CURL v. 7.39.0,
Proj4 v. 4.8.0,
SQLite v. 3080700,
Jpeg v. 8d,
PNG v. 1.2.50,
Minizip v. 11.
uuid,
libwebsockets,
rapidjson,
Spatialite,
Coffeecatch,
tinydir,
Freetype-GL,
libtess2,
RTree,
Spline,
SHA,
lodePNG.
and are used by this cross-platform mobile app: https://github.com/amigocloud/amigoclient https://github.com/amigocloud/amigoclient
Getting this libraries to work on *nix platforms (e.g. Android or iOS) is easy. Getting them to work on Windows Mobile is a nightmare - starting with the fact that they don't even support things like OpenGL...
- pjmlp 11y agoThose C and C++ dependencies are using OS specific APIs. The developers not caring about writing portable code doesn't make it less first class on Windows Phone. I don't see any chapter on ANSI C or ANSI C++ standards about OpenGL. When I learned C and C++, targeting UNIX only didn't meant much, because POSIX wasn't the same thing across all UNIX systems and Windows wasn't the only non-POSIX OS. So we learned to abstract the OS APIs properly. Nowadays it seems we are reaching a UNIX mono-culture.
- rburhum 11y agoI have been developing code for 20 years using C/C++ - it sounds like you have been doing this even longer. I think it is completely unfair that you simply dismiss and blame the libraries "because the developers did not care and wrote it without portability in mind". I am not sure what your own personal definition of "first class citizen" is, but as such, IMHO it doesnt even make sense to argue it. All I can tell you is that I can take all these projects and create a Windows 7 build that works - so the work to make it "portable" is there (even with all the nonsense of making sure they are compiled against the exact multithreaded vc runtime version and other windows quirks). MS has specifically chosen to not support other subsystems (e.g. OpenGL) that make portability easy/realistically feasible. To me, having a "hello world" work doesnt make a platform a "first class" system - bringing complex well known libraries and make them work does. That makes a first class citizen. I know we disagree - so we'll just have to agree to disagree :)
- pjmlp 11y agoI started coding in early 80's. First class citzen for a programming language means: 1 - It is part of the OS SDK 2 - All the SDK tools support the language, including RAD tooling for UI, Web, database, .... 3 - The OS APIs are written with this language in mind 4 - The OS API documentation uses examples in the programming language. So C, Swift and Objective-C are first class in iOS and Mac OS X. JavaScript is first class in the browser C is first class in UNIX C#, VB, C++ are first class in Windows Java is first class on Android. What open source libraries are supported on a OS don't have anything to do with first class support.
- rburhum 11y ago> What open source libraries are supported on a OS don't have anything to do with first class support. Under your definition that is not true. Under mine, the ecosystem of libraries you can use on that platform is a key factor.