I find this topic pretty interesting and starting from @Martin_Guenther work, I digged a bit more in. I made [another script](https://gist.github.com/awesomebytes/18c6a3f0c20ec6d62ec872db694ead68) (warning, I mostly executed everything on an ipython terminal by parts, so I may have missed something) to clone the repos (in github, I tried to clone also the ones in bitbucket but it fails on my machine for some unrelated reason) and to compute the LOC on them for C++ and Python. The output is: > From 625 packages analysed > There are 413 packages using C++ > There are 317 packages using Python > And, actually, using both languages: 193 > 88.8747413208 % is CPP code > 11.1252586792 % is Python code I also recreated the table with this LOC data: | rank | repo name | stars | language | |------|--------------------------------------------------------------|------:|-----------------| | 1. | IntelRealSense/librealsense | 1295 | C++ (99.6), Python (0.4) | | 2. | ros/ros | 697 | Python (95.6), C++ (4.4) | | 3. | wjwwood/serial | 521 | C++ (99.7), Python (0.3) | | 4. | introlab/rtabmap | 490 | C++ (100.0), Python (0.0) | | 5. | OctoMap/octomap | 383 | C++ (99.7), Python (0.3) | | 6. | ros-planning/navigation | 320 | C++ (99.1), Python (0.9) | | 7. | ethz-asl/grid_map | 281 | C++ (99.7), Python (0.3) | | 8. | AutonomyLab/ardrone_autonomy | 264 | C | | 9. | ros/ros_comm | 239 | Python (44.8), C++ (55.2) | | 10. | dartsim/dart | 214 | C++ (98.7), Python (1.3) | | 11. | introlab/find-object | 210 | C++ (100.0), Python (0.0) | | 12. | vrpn/vrpn | 201 | C | | 13. | intel-ros/realsense | 194 | C++ (99.2), Python (0.8) | | 14. | robopeak/rplidar_ros | 191 | C++ (100.0), Python (0.0) | | 15. | ros-planning/moveit | 173 | C++ | | 16. | ros-visualization/rviz | 171 | C++ (97.6), Python (2.4) | | 17. | mavlink/mavros | 169 | C++ (92.1), Python (7.9) | | 18. | ros-drivers/rosserial | 164 | C++ (67.2), Python (32.8) | | 19. | introlab/rtabmap_ros | 162 | C++ (99.4), Python (0.6) | | 20. | cra-ros-pkg/robot_localization | 161 | C++ (99.4), Python (0.6) | | 21. | ros/ros_tutorials | 144 | C++ | | 22. | RobotWebTools/rosbridge_suite | 139 | Python (100.0), C++ (0.0) | | 23. | leggedrobotics/darknet_ros | 133 | C++ (100.0), Python (0.0) | | 24. | ros/catkin | 130 | Python (97.6), C++ (2.4) | | 25. | ros-perception/slam_gmapping | 128 | C++ (94.3), Python (5.7) | | 26. | ros-drivers/velodyne | 128 | C++ (95.2), Python (4.8) | | 27. | ros-industrial/universal_robot | 127 | Python (54.9), C++ (45.1) | | 28. | ccny-ros-pkg/imu_tools | 125 | C++ (100.0), Python (0.0) | | 29. | orocos/orocos_kinematics_dynamics | 122 | C++ (97.4), Python (2.6) | | 30. | ros-simulation/gazebo_ros_pkgs | 120 | C++ (96.3), Python (3.7) | | 31. | ros-controls/ros_control | 112 | C++ (92.0), Python (8.0) | | 32. | rosjava/rosjava_core | 110 | Java | | 33. | ros-perception/image_pipeline | 109 | C++ (77.9), Python (22.1) | | 34. | turtlebot/turtlebot | 103 | C++ (88.9), Python (11.1) | | 35. | facontidavide/PlotJuggler | 103 | C++ (100.0), Python (0.0) | | 36. | ROBOTIS-GIT/turtlebot3 | 101 | Python (65.0), C++ (35.0) | | 37. | ROBOTIS-GIT/DynamixelSDK | 94 | C# | | 38. | rst-tu-dortmund/teb_local_planner | 90 | C++ (95.4), Python (4.6) | | 39. | ros-perception/vision_opencv | 85 | C++ (84.7), Python (15.3) | | 40. | turtlebot/turtlebot_apps | 79 | C++ (65.2), Python (34.8) | | 41. | yujinrobot/kobuki | 76 | C++ (55.0), Python (45.0) | | 42. | ros-controls/ros_controllers | 73 | C++ (96.3), Python (3.7) | | 43. | ankitdhall/lidar_camera_calibration | 72 | C++ (100.0), Python (0.0) | | 44. | PickNikRobotics/rviz_visual_tools | 69 | C++ (100.0), Python (0.0) | | 45. | ipa320/cob_driver | 68 | C++ (94.2), Python (5.8) | | 46. | swri-robotics/mapviz | 66 | C++ (100.0), Python (0.0) | | 47. | plasmodic/ecto | 65 | C++ (71.6), Python (28.4) | | 48. | ros-drivers/usb_cam | 65 | C++ (100.0), Python (0.0) | | 49. | AutonomyLab/bebop_autonomy | 63 | C++ (94.9), Python (5.1) | | 50. | wg-perception/people | 61 | C++ (97.0), Python (3.0) | | 51. | ros/geometry | 59 | C++ (82.7), Python (17.3) | | 52. | ipa320/cob_common | 59 | Python (100.0), C++ (0.0) | | 53. | ros-perception/perception_pcl | 58 | C++ (99.6), Python (0.4) | | 54. | AndreaCensi/csm | 57 | C | | 55. | ipa320/cob_simulation | 57 | Python (100.0), C++ (0.0) | | 56. | Intermodalics/tango_ros | 57 | C++ (100.0), Python (0.0) | | 57. | clearpathrobotics/robot_upstart | 54 | Python (100.0), C++ (0.0) | | 58. | jsk-ros-pkg/jsk_recognition | 52 | C++ (85.3), Python (14.7) | | 59. | ipa320/cob_extern | 52 | C | | 60. | intel/ros_intel_movidius_ncs | 50 | C++ (100.0), Python (0.0) | | 61. | AutonomyLab/create_autonomy | 50 | C++ (100.0), Python (0.0) | | 62. | lagadic/vision_visp | 49 | C++ (99.2), Python (0.8) | | 63. | RobotWebTools/web_video_server | 48 | C++ (100.0), Python (0.0) | | 64. | skasperski/navigation_2d | 46 | C++ (100.0), Python (0.0) | | 65. | fkie/multimaster_fkie | 46 | Python (100.0), C++ (0.0) | | 66. | ccny-ros-pkg/scan_tools | 44 | C++ (100.0), Python (0.0) | | 67. | stdr-simulator-ros-pkg/stdr_simulator | 44 | C++ (98.6), Python (1.4) | | 68. | ros-industrial/industrial_core | 43 | C++ (100.0), Python (0.0) | | 69. | ros-planning/navigation_tutorials | 43 | C++ (100.0), Python (0.0) | | 70. | ipa320/cob_robots | 43 | Python (100.0), C++ (0.0) | | 71. | ros-drivers/pointgrey_camera_driver | 43 | C++ | | 72. | orocos-toolchain/log4cpp | 42 | C++ (100.0), Python (0.0) | | 73. | ros-perception/openslam_gmapping | 42 | C++ (100.0), Python (0.0) | | 74. | yujinrobot/yujin_ocs | 41 | C++ (83.3), Python (16.7) | | 75. | paulbovbel/frontier_exploration | 41 | C++ (100.0), Python (0.0) | | 76. | ros-industrial/ros_canopen | 41 | C++ (100.0), Python (0.0) | | 77. | ros-industrial/abb | 40 | C++ (100.0), Python (0.0) | | 78. | ros/geometry2 | 39 | C++ (91.9), Python (8.1) | | 79. | ros/executive_smach | 39 | Python (100.0), C++ (0.0) | | 80. | OctoMap/octomap_mapping | 37 | C++ (99.0), Python (1.0) | | 81. | ros-industrial/kuka_experimental | 37 | C++ (100.0), Python (0.0) | | 82. | ipa320/schunk_modular_robotics | 36 | C++ (99.3), Python (0.7) | | 83. | arebgun/dynamixel_motor | 35 | Python (100.0), C++ (0.0) | | 84. | youbot/youbot_driver | 35 | C++ (100.0), Python (0.0) | | 85. | davetcoleman/ros_control_boilerplate | 35 | C++ | | 86. | ros/actionlib | 34 | C++ (68.3), Python (31.7) | | 87. | beltransen/velo2cam_calibration | 34 | C++ (100.0), Python (0.0) | | 88. | ros/common_msgs | 34 | C++ (82.5), Python (17.5) | | 89. | hasauino/rrt_exploration | 33 | C++ (49.8), Python (50.2) | | 90. | magazino/move_base_flex | 33 | C++ (97.0), Python (3.0) | | 91. | turtlebot/turtlebot_simulator | 33 | EmberScript | | 92. | vanadiumlabs/arbotix_ros | 32 | Python (93.1), C++ (6.9) | | 93. | ros-visualization/visualization_tutorials | 32 | C++ (74.8), Python (25.2) | | 94. | ros-drivers/joystick_drivers | 32 | Python (68.8), C++ (31.2) | | 95. | cbandera/rosparam_handler | 31 | Python (54.3), C++ (45.7) | | 96. | wg-perception/object_recognition_core | 31 | C++ (54.3), Python (45.7) | | 97. | ros-naoqi/nao_robot | 30 | Python (95.1), C++ (4.9) | | 98. | ipa320/cob_command_tools | 30 | Python (79.5), C++ (20.5) | | 99. | mrpt-ros-pkg/mrpt_navigation | 30 | C++ (100.0), Python (0.0) | | 100. | ethz-asl/rqt_multiplot_plugin | 30 | C++ (99.9), Python (0.1) | I think Python has it's position on glueing things together, dealing with text, making apps and tools, and overall taking advantage of the big amount of third party libraries that ease doing stuff. If you need speed, C++ for sure. If you need something done quick, Python I'd say. --- [Visit Topic](https://discourse.ros.org/t/are-serious-things-done-with-ros-in-python/4359/8) or reply to this email to respond. If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates. ______________________________________________________________________________ ros-users mailing list ros-users@lists.ros.org http://lists.ros.org/mailman/listinfo/ros-users Unsubscribe: